diff options
| author | Lars-Dominik Braun <lars@6xq.net> | 2019-03-22 10:50:46 +0100 | 
|---|---|---|
| committer | Lars-Dominik Braun <lars@6xq.net> | 2019-03-22 10:50:46 +0100 | 
| commit | 9f535348ef2740d0d88096c330bbc2618ae5c4c5 (patch) | |
| tree | d9373b82142dfef01ef251a63288ec8a4d512a27 /crocoite | |
| parent | 4643112b8f5f208f360e2e7c9431931b6526131e (diff) | |
| download | crocoite-9f535348ef2740d0d88096c330bbc2618ae5c4c5.tar.gz crocoite-9f535348ef2740d0d88096c330bbc2618ae5c4c5.tar.bz2 crocoite-9f535348ef2740d0d88096c330bbc2618ae5c4c5.zip | |
behavior: Test DomSnapshot
Diffstat (limited to 'crocoite')
| -rw-r--r-- | crocoite/test_behavior.py | 28 | 
1 files changed, 27 insertions, 1 deletions
| diff --git a/crocoite/test_behavior.py b/crocoite/test_behavior.py index bbbd8ba..7a723c6 100644 --- a/crocoite/test_behavior.py +++ b/crocoite/test_behavior.py @@ -30,7 +30,7 @@ import pkg_resources  from .logger import Logger  from .devtools import Process  from .behavior import Scroll, Behavior, ExtractLinks, ExtractLinksEvent, Crash, \ -        Screenshot, ScreenshotEvent +        Screenshot, ScreenshotEvent, DomSnapshot, DomSnapshotEvent  from .controller import SinglePageController, EventHandler  from .devtools import Crashed @@ -226,3 +226,29 @@ async def test_screenshot ():          finally:              await runner.cleanup () +@pytest.mark.asyncio +async def test_dom_snapshot (): +    """ +    Behavior plug-in works, <canvas> is replaced by static image, <script> is +    stripped. Actual conversion from Chrome DOM to HTML is validated by module +    .test_html +    """ + +    url = URL.build (scheme='http', host='localhost', port=8080) +    runner = await simpleServer (url, f'<html><body><p>ÄÖÜäöü</p><script>alert("yes");</script><canvas id="canvas" width="1" height="1">Alternate text.</canvas></body></html>') + +    try: +        handler = AccumHandler () +        logger = Logger () +        controller = SinglePageController (url=url, logger=logger, +                service=Process (), behavior=[DomSnapshot], handler=[handler]) +        await controller.run () + +        snapshots = list (filter (lambda x: isinstance (x, DomSnapshotEvent), handler.data)) +        assert len (snapshots) == 1 +        doc = snapshots[0].document +        assert doc.startswith ('<HTML><HEAD><meta charset=utf-8></HEAD><BODY><P>ÄÖÜäöü</P><IMG id=canvas width=1 height=1 src="data:image/png;base64,'.encode ('utf-8')) +        assert doc.endswith ('></BODY></HTML>'.encode ('utf-8')) +    finally: +        await runner.cleanup () + | 
