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();
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
+
+
+
+
+
+
+pppppppppp
+qqqqqqqqqqqqqqqqqqqqqqqqqqq
+80%
+
+
+
+
+ li
+
+
+ sample table
+
+
+
+
+ head
+ data
+
+
+
+
+b
+i
+small
+
+Valentines day
+
+
+
+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 @@
+
+
+
+
+
+
+
+
+
+
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
-
-
-
-
-
-
- pppppppppp
- qqqqqqqqqqqqqqqqqqqqqqqqqqq
- 80%
-
-
-
-
- li
-
-
- sample table
-
-
-
-
- head
- data
-
-
-
-
- b
- i
- small
-
- Valentines day
-
-
-
-
-
-
-
- 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();