1 /* 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' 14 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS 17 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 18 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 19 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 20 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 21 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 22 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 23 * THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 (function () { 27 28 module("checkout"); 29 30 test("lastBlinkRollRevision", 0, function() { 31 var simulator = new NetworkSimulator(); 32 33 var requests = []; 34 simulator.get = function(url, callback) 35 { 36 requests.push([url]); 37 simulator.scheduleCallback(callback); 38 }; 39 simulator.ajax = function(options) 40 { 41 if (options.url.indexOf('/ping') == -1) 42 ok(false, 'Received non-ping ajax request: ' + options.url); 43 simulator.scheduleCallback(options.success); 44 }; 45 46 simulator.runTest(function() { 47 checkout.lastBlinkRollRevision(function() { 48 ok(true); 49 }, function() { 50 ok(false, 'Checkout should be available.'); 51 }); 52 }); 53 54 deepEqual(requests, [ 55 ["/lastroll"] 56 ]); 57 }); 58 59 test("rebaseline", 3, function() { 60 var simulator = new NetworkSimulator(); 61 62 var requests = []; 63 simulator.post = function(url, body, callback) 64 { 65 requests.push([url, body]); 66 simulator.scheduleCallback(callback); 67 }; 68 simulator.ajax = function(options) 69 { 70 if (options.url.indexOf('/ping') == -1) 71 ok(false, 'Received non-ping ajax request: ' + options.url); 72 simulator.scheduleCallback(options.success); 73 }; 74 75 var kExpectedTestNameProgressStack = [ 76 'fast/test.html', 77 'another/test.svg', 78 'another/test.svg', // This is the first one. 79 ]; 80 81 simulator.runTest(function() { 82 checkout.rebaseline([{ 83 'builderName': 'WebKit Linux', 84 'testName': 'another/test.svg', 85 'failureTypeList': ['IMAGE'], 86 }, { 87 'builderName': 'WebKit Mac10.6', 88 'testName': 'another/test.svg', 89 'failureTypeList': ['IMAGE', 'TEXT', 'IMAGE+TEXT'], 90 }, { 91 'builderName': 'Webkit Win7', 92 'testName': 'fast/test.html', 93 'failureTypeList': ['IMAGE+TEXT'], 94 }], function() { 95 ok(true); 96 }, function(failureInfo) { 97 equals(failureInfo.testName, kExpectedTestNameProgressStack.pop()); 98 }, function() { 99 ok(false, 'Checkout should be available.'); 100 }); 101 }); 102 103 deepEqual(requests, [ 104 ["/rebaselineall", 105 JSON.stringify({ 106 "another/test.svg": { 107 "WebKit Linux": ["png"], 108 "WebKit Mac10.6": ["png","txt"]}, 109 "fast/test.html": { 110 "Webkit Win7": ["txt","png"] 111 }})] 112 ]); 113 }); 114 115 })(); 116