summaryrefslogtreecommitdiffstats
path: root/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js')
-rw-r--r--Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js474
1 files changed, 0 insertions, 474 deletions
diff --git a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js b/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js
deleted file mode 100644
index 2106e68c6..000000000
--- a/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js
+++ /dev/null
@@ -1,474 +0,0 @@
-/*
- * Copyright (C) 2011 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-(function () {
-
-module("base");
-
-test("bind", 3, function() {
- function func(a, b) {
- equals(this.prop, 5);
- equals(a, "banana");
- deepEqual(b, [2, 3, 4]);
- }
-
- var thisObject = {
- "prop": 5
- };
-
- var bound = func.bind(thisObject, "banana");
- bound([2, 3, 4]);
-});
-
-
-test("joinPath", 1, function() {
- var value = base.joinPath("path/to", "test.html");
- equals(value, "path/to/test.html");
-});
-
-test("endsWith", 9, function() {
- ok(base.endsWith("xyz", ""));
- ok(base.endsWith("xyz", "z"));
- ok(base.endsWith("xyz", "yz"));
- ok(base.endsWith("xyz", "xyz"));
- ok(!base.endsWith("xyz", "wxyz"));
- ok(!base.endsWith("xyz", "gwxyz"));
- ok(base.endsWith("", ""));
- ok(!base.endsWith("", "z"));
- ok(!base.endsWith("xyxy", "yx"));
-});
-
-test("trimExtension", 6, function() {
- equals(base.trimExtension("xyz"), "xyz");
- equals(base.trimExtension("xy.z"), "xy");
- equals(base.trimExtension("x.yz"), "x");
- equals(base.trimExtension("x.y.z"), "x.y");
- equals(base.trimExtension(".xyz"), "");
- equals(base.trimExtension(""), "");
-});
-
-test("joinPath with empty parent", 1, function() {
- var value = base.joinPath("", "test.html");
- equals(value, "test.html");
-});
-
-test("dirName", 3, function() {
- equals(base.dirName("foo.html"), "foo.html");
- equals(base.dirName("foo/bar.html"), "foo");
- equals(base.dirName("foo/bar/baz.html"), "foo/bar");
-});
-
-test("uniquifyArray", 5, function() {
- deepEqual(base.uniquifyArray([]), []);
- deepEqual(base.uniquifyArray(["a"]), ["a"]);
- deepEqual(base.uniquifyArray(["a", "b"]), ["a", "b"]);
- deepEqual(base.uniquifyArray(["a", "b", "b"]), ["a", "b"]);
- deepEqual(base.uniquifyArray(["a", "b", "b", "a"]), ["a", "b"]);
-});
-
-test("flattenArray", 5, function() {
- deepEqual(base.flattenArray([]), []);
- deepEqual(base.flattenArray([["a"]]), ["a"]);
- deepEqual(base.flattenArray([["a"], ["b"]]), ["a", "b"]);
- deepEqual(base.flattenArray([["a"], ["b", "c"]]), ["a", "b", "c"]);
- deepEqual(base.flattenArray([["a"], [], ["b"]]), ["a", "b"]);
-});
-
-test("callInParallel", 4, function() {
- var expectedCall = [true, true, true];
- var expectCompletionCallback = true;
-
- base.callInParallel([
- function(callback) {
- ok(expectedCall[0]);
- expectedCall[0] = false;
- callback();
- },
- function(callback) {
- ok(expectedCall[1]);
- expectedCall[1] = false;
- callback();
- },
- function(callback) {
- ok(expectedCall[2]);
- expectedCall[2] = false;
- callback();
- },
- ], function() {
- ok(expectCompletionCallback);
- expectCompletionCallback = false;
- })
-});
-
-test("callInSequence", 7, function() {
- var expectedArg = 42;
- var expectCompletionCallback = true;
-
- base.callInSequence(function(arg, callback) {
- ok(arg < 45);
- equals(arg, expectedArg++);
- callback();
- }, [42, 43, 44], function() {
- ok(expectCompletionCallback);
- expectCompletionCallback = false;
- })
-});
-
-test("RequestTracker", 5, function() {
- var ready = false;
- var tracker = new base.RequestTracker(1, function() {
- ok(ready);
- });
- ready = true;
- tracker.requestComplete();
- ready = false;
-
- tracker = new base.RequestTracker(2, function(parameter) {
- ok(ready);
- equals(parameter, 'argument');
- }, ['argument']);
- tracker.requestComplete();
- ready = true;
- tracker.requestComplete();
- ready = false;
-
- tracker = new base.RequestTracker(0, function() {
- ok(true);
- });
- tracker.requestComplete();
-
- tracker = new base.RequestTracker(0);
- tracker.requestComplete();
- // Should not barf.
- ok(true);
-});
-
-test("CallbackIterator", 22, function() {
- var expected = 0;
- var iterator = new base.CallbackIterator(function(a, b) {
- equals(a, 'ArgA' + expected);
- equals(b, 'ArgB' + expected);
- ++expected;
- }, [
- ['ArgA0', 'ArgB0'],
- ['ArgA1', 'ArgB1'],
- ['ArgA2', 'ArgB2'],
- ]);
- ok(iterator.hasNext())
- ok(!iterator.hasPrevious())
- iterator.callNext();
- ok(iterator.hasNext())
- ok(!iterator.hasPrevious())
- iterator.callNext();
- ok(iterator.hasNext())
- ok(iterator.hasPrevious())
- iterator.callNext();
- ok(!iterator.hasNext())
- ok(iterator.hasPrevious())
- expected = 1;
- iterator.callPrevious();
- ok(iterator.hasNext())
- ok(iterator.hasPrevious())
- expected = 0;
- iterator.callPrevious();
- ok(iterator.hasNext())
- ok(!iterator.hasPrevious())
-});
-
-test("filterDictionary", 3, function() {
- var dictionary = {
- 'foo': 43,
- 'bar': 11
- };
- deepEqual(base.filterDictionary(dictionary, function() { return true; }), {
- "foo": 43,
- "bar": 11
- });
- deepEqual(base.filterDictionary(dictionary, function() { return false; }), { });
- deepEqual(base.filterDictionary(dictionary, function(key) { return key == 'foo'; }), {
- "foo": 43
- });
-});
-
-test("mapDictionary", 3, function() {
- deepEqual(base.mapDictionary({}, function(value) { return value - 10; }), {});
- var dictionary = {
- 'foo': 43,
- 'bar': 11
- };
- deepEqual(base.mapDictionary(dictionary, function(value) { return value - 10; }), {
- "foo": 33,
- "bar": 1
- });
- deepEqual(base.mapDictionary(dictionary, function(value) {
- if (value > 20)
- return value - 20;
- }), {
- "foo": 23,
- });
-});
-
-test("filterTree", 2, function() {
- var tree = {
- 'path': {
- 'to': {
- 'test.html': {
- 'actual': 'PASS',
- 'expected': 'FAIL'
- }
- },
- 'another.html': {
- 'actual': 'TEXT',
- 'expected': 'PASS'
- }
- }
- }
-
- function isLeaf(node)
- {
- return !!node.actual;
- }
-
- function actualIsText(node)
- {
- return node.actual == 'TEXT';
- }
-
- var all = base.filterTree(tree, isLeaf, function() { return true });
- deepEqual(all, {
- 'path/to/test.html': {
- 'actual': 'PASS',
- 'expected': 'FAIL'
- },
- 'path/another.html': {
- 'actual': 'TEXT',
- 'expected': 'PASS'
- }
- });
-
- var text = base.filterTree(tree, isLeaf, actualIsText);
- deepEqual(text, {
- 'path/another.html': {
- 'actual': 'TEXT',
- 'expected': 'PASS'
- }
- });
-});
-
-test("UpdateTracker", 20, function() {
- var dict;
-
- function dumpKeys()
- {
- var updates = []
- dict.forEach(function(item, key, updated) {
- updates.push(key);
- });
- return updates;
- }
-
- function dumpUpdatedKeys()
- {
- var updates = []
- dict.forEach(function(item, key, updated) {
- updated && updates.push(key);
- });
- return updates;
- }
-
-
- dict = new base.UpdateTracker();
- dict.update("5", {});
- deepEqual(dumpUpdatedKeys(), ["5"]);
- dict.update("6", {});
- dict.update("7", {});
- deepEqual(dumpUpdatedKeys(), ["5", "6", "7"]);
- deepEqual(dict.get("6"), {});
- ok(dict.exists("7"));
- dict.purge();
- deepEqual(dumpUpdatedKeys(), []);
- deepEqual(dumpKeys(), ["5", "6", "7"]);
- dict.update("5", {});
- deepEqual(dumpUpdatedKeys(), ["5"]);
- dict.update("4", {});
- deepEqual(dumpUpdatedKeys(), ["4", "5"]);
- deepEqual(dumpKeys(), ["4", "5", "6", "7"]);
- dict.purge();
- deepEqual(dumpKeys(), ["4", "5"]);
- deepEqual(dumpUpdatedKeys(), []);
- dict.purge();
- deepEqual(dumpKeys(), []);
-
- var removeCount = 0;
- dict.update("one");
- deepEqual(dumpUpdatedKeys(), ["one"]);
- dict.update("two");
- deepEqual(dumpUpdatedKeys(), ["one", "two"]);
- dict.update("three");
- dict.purge();
- deepEqual(dumpKeys(), ["one", "three", "two"]);
- dict.update("two");
- dict.purge(function() {
- removeCount++;
- });
- deepEqual(dumpKeys(), ["two"]);
- equal(removeCount, 2);
- dict.update("four");
- var removeCounter = { count: 0 };
- dict.purge(function() {
- this.count++;
- }, removeCounter);
- equal(removeCounter.count, 1);
- dict.purge(function() {
- equal(String(this), "four");
- });
-
- dict = new base.UpdateTracker();
- dict.update("one");
- var thisObject = {}
- dict.forEach(function(item) {
- equal(this, thisObject);
- }, thisObject);
-
-});
-
-test("extends", 14, function() {
-
- var LikeDiv = base.extends("div", {
- init: function() {
- this.textContent = "awesome";
- },
- method: function(msg) {
- return 42;
- }
- });
-
- var LikeLikeDiv = base.extends(LikeDiv, {
- init: function() {
- this.className = "like";
- }
- });
-
- var LikeP = base.extends("p", {
- init: function(content) {
- this.textContent = content
- }
- });
-
- var LikeProgress = base.extends("progress", {
- init: function() {
- this.max = 100;
- this.value = 10;
- }
- });
-
- var LikeLikeProgress = base.extends(LikeProgress, {
- completed: function() {
- this.value = 100;
- }
- });
-
- document.body.appendChild(new LikeDiv());
- equals(document.body.lastChild.tagName, "DIV");
- equals(document.body.lastChild.innerHTML, "awesome");
- equals(document.body.lastChild.method(), 42);
- document.body.removeChild(document.body.lastChild);
-
- document.body.appendChild(new LikeLikeDiv());
- equals(document.body.lastChild.tagName, "DIV");
- equals(document.body.lastChild.innerHTML, "awesome");
- equals(document.body.lastChild.method(), 42);
- equals(document.body.lastChild.className, "like");
- document.body.removeChild(document.body.lastChild);
-
- document.body.appendChild(new LikeP("super"));
- equals(document.body.lastChild.tagName, "P");
- equals(document.body.lastChild.innerHTML, "super");
- raises(function() {
- document.body.lastChild.method();
- });
- document.body.removeChild(document.body.lastChild);
-
- document.body.appendChild(new LikeProgress());
- equals(document.body.lastChild.tagName, "PROGRESS");
- // Safari 5.1 lacks the <progress> element.
- // equals(document.body.lastChild.position, 0.1);
- equals(document.body.lastChild.innerHTML, "");
- raises(function() {
- document.body.lastChild.method();
- });
- document.body.removeChild(document.body.lastChild);
-
- document.body.appendChild(new LikeLikeProgress());
- equals(document.body.lastChild.tagName, "PROGRESS");
- // Safari 5.1 lacks the <progress> element.
- // equals(document.body.lastChild.position, 0.1);
- document.body.lastChild.completed();
- // Safari 5.1 lacks the <progress> element.
- // equals(document.body.lastChild.position, 1);
- document.body.removeChild(document.body.lastChild);
-});
-
-test("relativizeTime", 14, function() {
- var time = new Date();
- equals(base.relativizeTime(time), "Just now");
- time.setMinutes(time.getMinutes() - 1);
- equals(base.relativizeTime(time), "1 minute ago");
- time.setMinutes(time.getMinutes() - 1);
- equals(base.relativizeTime(time), "2 minutes ago");
- time.setMinutes(time.getMinutes() - 1);
- equals(base.relativizeTime(time), "3 minutes ago");
- time.setMinutes(time.getMinutes() - 56);
- equals(base.relativizeTime(time), "59 minutes ago");
- time.setMinutes(time.getMinutes() - 1);
- equals(base.relativizeTime(time), "1 hour ago");
- time.setMinutes(time.getMinutes() - 29);
- equals(base.relativizeTime(time), "1 hour ago");
- time.setMinutes(time.getMinutes() - 2);
- equals(base.relativizeTime(time), "2 hours ago");
- time.setMinutes(time.getMinutes() - 29);
- equals(base.relativizeTime(time), "2 hours ago");
- time.setHours(time.getHours() - 1);
- equals(base.relativizeTime(time), "3 hours ago");
- time.setHours(time.getHours() - 20);
- equals(base.relativizeTime(time), "23 hours ago");
- time.setHours(time.getHours() - 1);
- equals(base.relativizeTime(time), "1 day ago");
- time.setDate(time.getDate() - 1);
- equals(base.relativizeTime(time), "2 days ago");
- time.setDate(time.getDate() - 998);
- equals(base.relativizeTime(time), "1000 days ago");
-});
-
-test("getURLParameter", 1, function() {
- ok(!base.getURLParameter('non-existant'));
-});
-
-test("parseJSONP", 2, function() {
- deepEqual(base.parseJSONP(""), {});
- deepEqual(base.parseJSONP('p({"key": "value"})'), {"key": "value"});
-});
-
-})();