Gitweb links:

...log 
http://git.netsurf-browser.org/netsurf.git/shortlog/183f9ed8bc4be1f379e365fae5f47dbb348b7978
...commit 
http://git.netsurf-browser.org/netsurf.git/commit/183f9ed8bc4be1f379e365fae5f47dbb348b7978
...tree 
http://git.netsurf-browser.org/netsurf.git/tree/183f9ed8bc4be1f379e365fae5f47dbb348b7978

The branch, master has been updated
       via  183f9ed8bc4be1f379e365fae5f47dbb348b7978 (commit)
       via  4db81370f3ad8d4812020394fec453131eb089bf (commit)
       via  6bbb672c577bc02a77e199f0152ad4538dcc32ab (commit)
      from  dd96a69573e7a45b5ac4a2b172319d900c89f53b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=183f9ed8bc4be1f379e365fae5f47dbb348b7978
commit 183f9ed8bc4be1f379e365fae5f47dbb348b7978
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    Example script console log test, needs genericising on path
    
    Currently this has to have a full-path to the inserted-script test
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/test/monkey-tests/inserted-script.yaml 
b/test/monkey-tests/inserted-script.yaml
new file mode 100644
index 0000000..b2f8fbf
--- /dev/null
+++ b/test/monkey-tests/inserted-script.yaml
@@ -0,0 +1,21 @@
+title: run inserted-script test in JS enabled browser
+group: basic
+steps:
+- action: launch
+  args:
+  - "--enable_javascript=1"
+- action: window-new
+  tag: win1
+- action: clear-log
+  window: win1
+- action: navigate
+  window: win1
+  url: 
file:///home/dsilvers/dev-netsurf/workspace/netsurf/test/js/inserted-script.html
+- action: block
+  conditions:
+  - window: win1
+    status: complete
+- action: wait-log
+  window: win1
+  substring: deferred
+- action: quit


commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=4db81370f3ad8d4812020394fec453131eb089bf
commit 4db81370f3ad8d4812020394fec453131eb089bf
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    Support logging in monkey_driver.py
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/test/monkey_driver.py b/test/monkey_driver.py
index 2bf3893..9f33160 100755
--- a/test/monkey_driver.py
+++ b/test/monkey_driver.py
@@ -128,6 +128,10 @@ def run_test_step_action_launch(ctx, step):
     ctx['browser'] = DriverBrowser(monkey_cmd=[ctx["monkey"]], quiet=True)
     assert_browser(ctx)
     ctx['windows'] = dict()
+    for arg in step.get('args', []):
+        print(get_indent(ctx) + "        " + arg)
+        ctx['browser'].pass_options(arg)
+
 
 def run_test_step_action_window_new(ctx, step):
     print(get_indent(ctx) + "Action: " + step["action"])
@@ -284,6 +288,33 @@ def run_test_step_action_remove_auth(ctx, step):
     browser.remove_auth(step.get("url"), step.get("realm"),
                         step.get("username"), step.get("password"))
 
+
+def run_test_step_action_clear_log(ctx, step):
+    print(get_indent(ctx) + "Action: " + step["action"])
+    assert_browser(ctx)
+    browser = ctx['browser']
+    tag = step['window']
+    print(get_indent(ctx) + "        " + tag + " Log cleared")
+    win = ctx['windows'].get(tag)
+    assert(win is not None)
+    win.clear_log()
+
+
+def run_test_step_action_wait_log(ctx, step):
+    print(get_indent(ctx) + "Action: " + step["action"])
+    assert_browser(ctx)
+    browser = ctx['browser']
+    tag = step['window']
+    source = step.get('source')
+    foldable = step.get('foldable')
+    level = step.get('level')
+    substr = step.get('substring')
+    print(get_indent(ctx) + "        " + tag + " Wait for logging")
+    win = ctx['windows'].get(tag)
+    assert(win is not None)
+    win.wait_for_log(source=source, foldable=foldable, level=level, 
substr=substr)
+
+
 def run_test_step_action_quit(ctx, step):
     print(get_indent(ctx) + "Action: " + step["action"])
     assert_browser(ctx)
@@ -305,6 +336,8 @@ step_handlers = {
     "plot-check":   run_test_step_action_plot_check,
     "add-auth":     run_test_step_action_add_auth,
     "remove-auth":  run_test_step_action_remove_auth,
+    "clear-log":    run_test_step_action_clear_log,
+    "wait-log":     run_test_step_action_wait_log,
     "quit":         run_test_step_action_quit,
 }
 


commitdiff 
http://git.netsurf-browser.org/netsurf.git/commit/?id=6bbb672c577bc02a77e199f0152ad4538dcc32ab
commit 6bbb672c577bc02a77e199f0152ad4538dcc32ab
Author: Daniel Silverstone <[email protected]>
Commit: Daniel Silverstone <[email protected]>

    Monkeyfarmer: Support logging
    
    Signed-off-by: Daniel Silverstone <[email protected]>

diff --git a/test/monkeyfarmer.py b/test/monkeyfarmer.py
index 46901e9..6cc7ec1 100644
--- a/test/monkeyfarmer.py
+++ b/test/monkeyfarmer.py
@@ -283,6 +283,7 @@ class BrowserWindow:
         self.url = ""
         self.plotted = []
         self.plotting = False
+        self.log_entries = []
 
     def kill(self):
         self.browser.farmer.tell_monkey("WINDOW DESTROY %s" % self.winid)
@@ -384,6 +385,9 @@ class BrowserWindow:
             self.browser.current_draw_target = None
             self.plotting = False
 
+    def handle_window_CONSOLE_LOG(self, _src, src, folding, level, *msg):
+        self.log_entries.append((src, folding == "FOLDABLE", level, " 
".join(msg)))
+
     def load_page(self, url=None, referer=None):
         if url is not None:
             self.go(url, referer)
@@ -412,7 +416,33 @@ class BrowserWindow:
         while self.plotting:
             self.browser.farmer.loop(once=True)
         return self.plotted
-            
+
+    def clear_log(self):
+        self.log_entries = []
+
+    def log_contains(self, source=None, foldable=None, level=None, 
substr=None):
+        if (source is None) and (foldable is None) and (level is None) and 
(substr is None):
+            assert False, "Unable to run log_contains, no predicate given"
+
+        for (source_, foldable_, level_, msg_) in self.log_entries:
+            ok = True
+            if (source is not None) and (source != source_):
+                ok = False
+            if (foldable is not None) and (foldable != foldable_):
+                ok = False
+            if (level is not None) and (level != level_):
+                ok = False
+            if (substr is not None) and (substr not in msg_):
+                ok = False
+            if ok:
+                return True
+
+        return False
+
+    def wait_for_log(self, source=None, foldable=None, level=None, 
substr=None):
+        while not self.log_contains(source=source, foldable=foldable, 
level=level, substr=substr):
+            self.browser.farmer.loop(once=True)
+
 
 if __name__ == '__main__':
     # Simple test is as follows...
@@ -472,6 +502,17 @@ if __name__ == '__main__':
             rest = " ".join(cmd[6:])
             print("{} {} -> {}".format(x,y,rest))
 
+    fname = "test/js/inserted-script.html"
+    full_fname = os.path.join(os.getcwd(), fname)
+
+    browser = Browser(quiet=True)
+    browser.pass_options("--enable_javascript=1")
+    win = browser.new_window()
+    win.load_page("file://" + full_fname)
+    print("Loaded, URL is {}".format(win.url))
+
+    win.wait_for_log(substr="deferred")
+
     #print("Discussion was:")
     #for line in browser.farmer.discussion:
     #    print("{} {}".format(line[0], line[1]))


-----------------------------------------------------------------------

Summary of changes:
 test/monkey-tests/inserted-script.yaml |   21 ++++++++++++++++
 test/monkey_driver.py                  |   33 ++++++++++++++++++++++++
 test/monkeyfarmer.py                   |   43 +++++++++++++++++++++++++++++++-
 3 files changed, 96 insertions(+), 1 deletion(-)
 create mode 100644 test/monkey-tests/inserted-script.yaml

diff --git a/test/monkey-tests/inserted-script.yaml 
b/test/monkey-tests/inserted-script.yaml
new file mode 100644
index 0000000..b2f8fbf
--- /dev/null
+++ b/test/monkey-tests/inserted-script.yaml
@@ -0,0 +1,21 @@
+title: run inserted-script test in JS enabled browser
+group: basic
+steps:
+- action: launch
+  args:
+  - "--enable_javascript=1"
+- action: window-new
+  tag: win1
+- action: clear-log
+  window: win1
+- action: navigate
+  window: win1
+  url: 
file:///home/dsilvers/dev-netsurf/workspace/netsurf/test/js/inserted-script.html
+- action: block
+  conditions:
+  - window: win1
+    status: complete
+- action: wait-log
+  window: win1
+  substring: deferred
+- action: quit
diff --git a/test/monkey_driver.py b/test/monkey_driver.py
index 2bf3893..9f33160 100755
--- a/test/monkey_driver.py
+++ b/test/monkey_driver.py
@@ -128,6 +128,10 @@ def run_test_step_action_launch(ctx, step):
     ctx['browser'] = DriverBrowser(monkey_cmd=[ctx["monkey"]], quiet=True)
     assert_browser(ctx)
     ctx['windows'] = dict()
+    for arg in step.get('args', []):
+        print(get_indent(ctx) + "        " + arg)
+        ctx['browser'].pass_options(arg)
+
 
 def run_test_step_action_window_new(ctx, step):
     print(get_indent(ctx) + "Action: " + step["action"])
@@ -284,6 +288,33 @@ def run_test_step_action_remove_auth(ctx, step):
     browser.remove_auth(step.get("url"), step.get("realm"),
                         step.get("username"), step.get("password"))
 
+
+def run_test_step_action_clear_log(ctx, step):
+    print(get_indent(ctx) + "Action: " + step["action"])
+    assert_browser(ctx)
+    browser = ctx['browser']
+    tag = step['window']
+    print(get_indent(ctx) + "        " + tag + " Log cleared")
+    win = ctx['windows'].get(tag)
+    assert(win is not None)
+    win.clear_log()
+
+
+def run_test_step_action_wait_log(ctx, step):
+    print(get_indent(ctx) + "Action: " + step["action"])
+    assert_browser(ctx)
+    browser = ctx['browser']
+    tag = step['window']
+    source = step.get('source')
+    foldable = step.get('foldable')
+    level = step.get('level')
+    substr = step.get('substring')
+    print(get_indent(ctx) + "        " + tag + " Wait for logging")
+    win = ctx['windows'].get(tag)
+    assert(win is not None)
+    win.wait_for_log(source=source, foldable=foldable, level=level, 
substr=substr)
+
+
 def run_test_step_action_quit(ctx, step):
     print(get_indent(ctx) + "Action: " + step["action"])
     assert_browser(ctx)
@@ -305,6 +336,8 @@ step_handlers = {
     "plot-check":   run_test_step_action_plot_check,
     "add-auth":     run_test_step_action_add_auth,
     "remove-auth":  run_test_step_action_remove_auth,
+    "clear-log":    run_test_step_action_clear_log,
+    "wait-log":     run_test_step_action_wait_log,
     "quit":         run_test_step_action_quit,
 }
 
diff --git a/test/monkeyfarmer.py b/test/monkeyfarmer.py
index 46901e9..6cc7ec1 100644
--- a/test/monkeyfarmer.py
+++ b/test/monkeyfarmer.py
@@ -283,6 +283,7 @@ class BrowserWindow:
         self.url = ""
         self.plotted = []
         self.plotting = False
+        self.log_entries = []
 
     def kill(self):
         self.browser.farmer.tell_monkey("WINDOW DESTROY %s" % self.winid)
@@ -384,6 +385,9 @@ class BrowserWindow:
             self.browser.current_draw_target = None
             self.plotting = False
 
+    def handle_window_CONSOLE_LOG(self, _src, src, folding, level, *msg):
+        self.log_entries.append((src, folding == "FOLDABLE", level, " 
".join(msg)))
+
     def load_page(self, url=None, referer=None):
         if url is not None:
             self.go(url, referer)
@@ -412,7 +416,33 @@ class BrowserWindow:
         while self.plotting:
             self.browser.farmer.loop(once=True)
         return self.plotted
-            
+
+    def clear_log(self):
+        self.log_entries = []
+
+    def log_contains(self, source=None, foldable=None, level=None, 
substr=None):
+        if (source is None) and (foldable is None) and (level is None) and 
(substr is None):
+            assert False, "Unable to run log_contains, no predicate given"
+
+        for (source_, foldable_, level_, msg_) in self.log_entries:
+            ok = True
+            if (source is not None) and (source != source_):
+                ok = False
+            if (foldable is not None) and (foldable != foldable_):
+                ok = False
+            if (level is not None) and (level != level_):
+                ok = False
+            if (substr is not None) and (substr not in msg_):
+                ok = False
+            if ok:
+                return True
+
+        return False
+
+    def wait_for_log(self, source=None, foldable=None, level=None, 
substr=None):
+        while not self.log_contains(source=source, foldable=foldable, 
level=level, substr=substr):
+            self.browser.farmer.loop(once=True)
+
 
 if __name__ == '__main__':
     # Simple test is as follows...
@@ -472,6 +502,17 @@ if __name__ == '__main__':
             rest = " ".join(cmd[6:])
             print("{} {} -> {}".format(x,y,rest))
 
+    fname = "test/js/inserted-script.html"
+    full_fname = os.path.join(os.getcwd(), fname)
+
+    browser = Browser(quiet=True)
+    browser.pass_options("--enable_javascript=1")
+    win = browser.new_window()
+    win.load_page("file://" + full_fname)
+    print("Loaded, URL is {}".format(win.url))
+
+    win.wait_for_log(substr="deferred")
+
     #print("Discussion was:")
     #for line in browser.farmer.discussion:
     #    print("{} {}".format(line[0], line[1]))


-- 
NetSurf Browser

_______________________________________________
netsurf-commits mailing list
[email protected]
http://listmaster.pepperfish.net/cgi-bin/mailman/listinfo/netsurf-commits-netsurf-browser.org

Reply via email to