| Index: Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/base_unittests.js
|
| 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 2106e68c6d3b6e1e59090d11f17d1dca5078f0f8..0000000000000000000000000000000000000000
|
| --- 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"});
|
| -});
|
| -
|
| -})();
|
|
|