From 4a93d9209589afd89cbb8bc49dd0e33292e3cdcd Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Tue, 15 Oct 2013 13:18:33 -0700 Subject: [PATCH 1/5] gitignore dirs like build.foo --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a036e91f472..38b1b84c376 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ servo-test Makefile Servo.app -build +build* objdir config.mk config.stamp From e701ba4d43f976272c98c06704515b162558651c Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Mon, 14 Oct 2013 16:37:10 -0700 Subject: [PATCH 2/5] harness: Truncate messages to one line --- src/test/html/content/harness.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/test/html/content/harness.js b/src/test/html/content/harness.js index a7da6e7cd6e..725380838c2 100644 --- a/src/test/html/content/harness.js +++ b/src/test/html/content/harness.js @@ -1,10 +1,15 @@ +function _oneline(x) { + var i = x.indexOf("\n"); + return (i == -1) ? x : (x.slice(0, i) + "..."); +} + function _fail(s, m) { // string split to avoid problems with tests that end up printing the value of window._fail. - window.alert("TEST-UNEXPECTED" + "-FAIL | " + s + ": " + m); + window.alert(_oneline("TEST-UNEXPECTED" + "-FAIL | " + s + ": " + m)); } function _pass(s, m) { - window.alert("TEST-PASS | " + s + ": " + m); + window.alert(_oneline("TEST-PASS | " + s + ": " + m)); } function is(a, b, c) { From 4bb2a70e08143bf9047a8c4bb4e3cc918e541be9 Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Mon, 14 Oct 2013 16:38:42 -0700 Subject: [PATCH 3/5] harness: Support more assertion types --- src/test/html/content/harness.js | 28 +++++++++++++------ src/test/html/content/test_childnodes.html | 4 +-- .../html/content/test_create_element.html | 6 ++-- .../content/test_document_getElementById.html | 6 ++-- .../html/content/test_empty_clientrect.html | 4 +-- src/test/html/content/test_navigator.html | 2 +- src/test/html/content/test_prototypes.html | 14 +++++----- 7 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/test/html/content/harness.js b/src/test/html/content/harness.js index 725380838c2..0697376df4f 100644 --- a/src/test/html/content/harness.js +++ b/src/test/html/content/harness.js @@ -12,16 +12,28 @@ function _pass(s, m) { window.alert(_oneline("TEST-PASS | " + s + ": " + m)); } -function is(a, b, c) { - let f = a != b ? _fail : _pass; - let m = !c ? "" : c; - f(a + " == " + b, m); +function _printer(opstr, op) { + return function (a, b, msg) { + let f = op(a,b) ? _pass : _fail; + if (!msg) msg = ""; + f(a + " " + opstr + " " + b, msg); + }; } -function isnot(a, b, c) { - let f = (a != b) ? _pass : _fail; - let m = !c ? "" : c; - f(a + " != " + b, m); +var is = _printer("==", function (a,b) { return a == b; }); +var is_a = _printer("is a", function (a,b) { return a instanceof b; }); +var is_in = _printer("is in", function (a,b) { return a in b; }); +var is_not_in = _printer("is not in", function (a,b) { return !(a in b); }); +var as_str_is = _printer("as string is", function (a,b) { return String(a) == b; }); +var isnot = _printer("!=", function (a,b) { return a != b; }); +var lt = _printer("<", function (a,b) { return a < b; }); +var gt = _printer(">", function (a,b) { return a > b; }); +var leq = _printer("<=", function (a,b) { return a <= b; }); +var geq = _printer(">=", function (a,b) { return a >= b; }); +var starts_with = _printer("starts with", function (a,b) { return a.indexOf(b) == 0; }); + +function is_function(val, name) { + starts_with(String(val), "function " + name + "("); } var _test_complete = false; diff --git a/src/test/html/content/test_childnodes.html b/src/test/html/content/test_childnodes.html index f8a4d9797c6..205a6124959 100644 --- a/src/test/html/content/test_childnodes.html +++ b/src/test/html/content/test_childnodes.html @@ -18,11 +18,11 @@ var child2 = document.createElement("p"); elem.appendChild(child2); - is(1 in children, true); + is_in(1, children); is(children.length, 2); is(children.item(1), child2); - is(!(2 in children), true); + is_not_in(2, children); is(children.item(2), null); finish(); diff --git a/src/test/html/content/test_create_element.html b/src/test/html/content/test_create_element.html index eaa3e11377a..f62c599504d 100644 --- a/src/test/html/content/test_create_element.html +++ b/src/test/html/content/test_create_element.html @@ -8,11 +8,11 @@ var elem = document.createElement("foo"); is(elem.tagName, "FOO"); var elem = document.createElement("p"); - is(elem instanceof HTMLParagraphElement, true); + is_a(elem, HTMLParagraphElement); var elem = document.createElement("sPAn"); - is(elem instanceof HTMLSpanElement, true); + is_a(elem, HTMLSpanElement); var text = document.createTextNode("hello"); - is(text instanceof Text, true); + is_a(text, Text); finish(); diff --git a/src/test/html/content/test_document_getElementById.html b/src/test/html/content/test_document_getElementById.html index 20140274477..370ec77fde0 100644 --- a/src/test/html/content/test_document_getElementById.html +++ b/src/test/html/content/test_document_getElementById.html @@ -13,12 +13,12 @@ let foo = document.getElementById("foo"); isnot(foo, null, "test-1-0, on static page"); is(foo && foo.tagName, "HEAD", "test1-1, on static page"); - is(foo instanceof HTMLHeadElement, true, "test1-2, on static page"); + is_a(foo, HTMLHeadElement, "test1-2, on static page"); let bar = document.getElementById("bar"); isnot(bar, null, "test1-3, on static page"); is(bar && bar.tagName, "DIV", "test1-4, on static page"); - is(bar instanceof HTMLDivElement, true, "test1-5, on static page"); + is_a(bar, HTMLDivElement, "test1-5, on static page"); } // test2: scripted element @@ -32,7 +32,7 @@ let appended = document.getElementById(TEST_ID); isnot(appended, null, "test2-0, appended element"); is(appended && appended.tagName, "DIV", "test2-1, appended element"); - is(appended instanceof HTMLDivElement, true, "test2-2, appended element"); + is_a(appended, HTMLDivElement, "test2-2, appended element"); // test: removed element gBody.removeChild(test); diff --git a/src/test/html/content/test_empty_clientrect.html b/src/test/html/content/test_empty_clientrect.html index 3902886ee99..3671ca5bcc4 100644 --- a/src/test/html/content/test_empty_clientrect.html +++ b/src/test/html/content/test_empty_clientrect.html @@ -4,14 +4,14 @@ diff --git a/src/test/html/content/test_navigator.html b/src/test/html/content/test_navigator.html index 7d786ea8ec6..c7809f36895 100644 --- a/src/test/html/content/test_navigator.html +++ b/src/test/html/content/test_navigator.html @@ -6,7 +6,7 @@ From 396a375e9cb10484dcc3f639ce8f3a447e14c9e1 Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Mon, 14 Oct 2013 16:40:01 -0700 Subject: [PATCH 4/5] Replace test_bindings.html with various content tests Fixes #631. --- src/test/html/content/test_DOMParser.html | 12 + src/test/html/content/test_Event.html | 21 + src/test/html/content/test_MouseEvent.html | 22 ++ src/test/html/content/test_collections.html | 140 +++++++ .../html/content/test_documentElement.html | 14 + .../content/test_getBoundingClientRect.html | 32 ++ .../html/content/test_getClientRects.html | 40 ++ .../content/test_getElementsByTagName.html | 18 + src/test/html/content/test_title.html | 12 + src/test/html/test_bindings.html | 369 ------------------ 10 files changed, 311 insertions(+), 369 deletions(-) create mode 100644 src/test/html/content/test_DOMParser.html create mode 100644 src/test/html/content/test_Event.html create mode 100644 src/test/html/content/test_MouseEvent.html create mode 100644 src/test/html/content/test_collections.html create mode 100644 src/test/html/content/test_documentElement.html create mode 100644 src/test/html/content/test_getBoundingClientRect.html create mode 100644 src/test/html/content/test_getClientRects.html create mode 100644 src/test/html/content/test_getElementsByTagName.html create mode 100644 src/test/html/content/test_title.html delete mode 100644 src/test/html/test_bindings.html diff --git a/src/test/html/content/test_DOMParser.html b/src/test/html/content/test_DOMParser.html new file mode 100644 index 00000000000..aee20a9e759 --- /dev/null +++ b/src/test/html/content/test_DOMParser.html @@ -0,0 +1,12 @@ + + + + + + diff --git a/src/test/html/content/test_Event.html b/src/test/html/content/test_Event.html new file mode 100644 index 00000000000..6b24d46daab --- /dev/null +++ b/src/test/html/content/test_Event.html @@ -0,0 +1,21 @@ + + + + + + diff --git a/src/test/html/content/test_MouseEvent.html b/src/test/html/content/test_MouseEvent.html new file mode 100644 index 00000000000..2fb8d413e88 --- /dev/null +++ b/src/test/html/content/test_MouseEvent.html @@ -0,0 +1,22 @@ + + + + + + diff --git a/src/test/html/content/test_collections.html b/src/test/html/content/test_collections.html new file mode 100644 index 00000000000..93837eb0c86 --- /dev/null +++ b/src/test/html/content/test_collections.html @@ -0,0 +1,140 @@ + + +test_binding + page + + + + + + +
fffff



fffffffffffffffff
+
ggg
+hhhhhhhh +
iiiiiiiiiiiiiiiiiii
+ + + +
+
+ legend + +
+
+
+ +

pppppppppp

+qqqqqqqqqqqqqqqqqqqqqqqqqqq +80% + + + +
    +
  1. li
  2. +
+ + + + + + + + + +
sample table
head
data
+
section
+ +b +i +small + + + + + +
pre
+ + + +hi + + + diff --git a/src/test/html/content/test_documentElement.html b/src/test/html/content/test_documentElement.html new file mode 100644 index 00000000000..0c38828084e --- /dev/null +++ b/src/test/html/content/test_documentElement.html @@ -0,0 +1,14 @@ + + + + + + diff --git a/src/test/html/content/test_getBoundingClientRect.html b/src/test/html/content/test_getBoundingClientRect.html new file mode 100644 index 00000000000..8ccd55a7df3 --- /dev/null +++ b/src/test/html/content/test_getBoundingClientRect.html @@ -0,0 +1,32 @@ + + + + + + + +
my div
+ + diff --git a/src/test/html/content/test_getClientRects.html b/src/test/html/content/test_getClientRects.html new file mode 100644 index 00000000000..6570e1c8455 --- /dev/null +++ b/src/test/html/content/test_getClientRects.html @@ -0,0 +1,40 @@ + + + + + + + +
+ my div +
foo
+
bar
+
+ + diff --git a/src/test/html/content/test_getElementsByTagName.html b/src/test/html/content/test_getElementsByTagName.html new file mode 100644 index 00000000000..34d31d0e318 --- /dev/null +++ b/src/test/html/content/test_getElementsByTagName.html @@ -0,0 +1,18 @@ + + + + + + +
div one
+
div two
+ + diff --git a/src/test/html/content/test_title.html b/src/test/html/content/test_title.html new file mode 100644 index 00000000000..da3dcfc7112 --- /dev/null +++ b/src/test/html/content/test_title.html @@ -0,0 +1,12 @@ + + +starting title + + + + diff --git a/src/test/html/test_bindings.html b/src/test/html/test_bindings.html deleted file mode 100644 index b2bc4a8fcb3..00000000000 --- a/src/test/html/test_bindings.html +++ /dev/null @@ -1,369 +0,0 @@ - - - - - test_binding - page - - - - -
fffff



fffffffffffffffff
-
ggg
- hhhhhhhh -
iiiiiiiiiiiiiiiiiii
- - - -
-
- legend - -
-
-
- -

pppppppppp

- qqqqqqqqqqqqqqqqqqqqqqqqqqq - 80% - - - -
    -
  1. li
  2. -
- - - - - - - - - -
sample table
head
data
-
section
- - b - i - small - - - - - - -
pre
- - - From 20b58ddab9c59ee1f4944478e8c2f568e4c27be8 Mon Sep 17 00:00:00 2001 From: Keegan McAllister Date: Tue, 15 Oct 2013 15:25:27 -0700 Subject: [PATCH 5/5] Revise DOMParser test This is commented out for now (as it was in test_bindings.html) because it causes a task failure. I'll open a ticket about that. --- src/test/html/content/test_DOMParser.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/html/content/test_DOMParser.html b/src/test/html/content/test_DOMParser.html index aee20a9e759..50c3b4f4f5f 100644 --- a/src/test/html/content/test_DOMParser.html +++ b/src/test/html/content/test_DOMParser.html @@ -5,7 +5,7 @@ is_function(DOMParser, "DOMParser"); let parser = new DOMParser(); is_a(parser, DOMParser); -//alert(parser.parseFromString("", "text/html")); +//is_a(parser.parseFromString("", "text/html"), Document); finish();