2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
7 <link rel="import" href="../../lib/network-simulator.html">
12 var assert = chai.assert;
14 describe('results script', function() {
16 var MockResultsBaseURL = 'https://storage.googleapis.com/chromium-layout-test-archives/Mock_Builder/results/layout-test-results';
18 it('should trim extensions', function() {
19 assert.equal(results._trimExtension('xyz'), 'xyz');
20 assert.equal(results._trimExtension('xy.z'), 'xy');
21 assert.equal(results._trimExtension('x.yz'), 'x');
22 assert.equal(results._trimExtension('x.y.z'), 'x.y');
23 assert.equal(results._trimExtension('.xyz'), '');
24 assert.equal(results._trimExtension(''), '');
27 it('should create failure info', function() {
28 var failureInfo = results.failureInfo('userscripts/another-test.html', 'Mock Builder', 'FAIL PASS');
29 assert.deepEqual(failureInfo, {
30 'testName': 'userscripts/another-test.html',
31 'builderName': 'Mock Builder',
32 'failureTypeList': ['FAIL', 'PASS'],
36 it('should get result kind', function() {
37 assert.equal(results.resultKind('https://example.com/foo-actual.txt'), 'actual');
38 assert.equal(results.resultKind('https://example.com/foo-expected.txt'), 'expected');
39 assert.equal(results.resultKind('https://example.com/foo-diff.txt'), 'diff');
40 assert.equal(results.resultKind('https://example.com/foo.bar-actual.txt'), 'actual');
41 assert.equal(results.resultKind('https://example.com/foo.bar-expected.txt'), 'expected');
42 assert.equal(results.resultKind('https://example.com/foo.bar-diff.txt'), 'diff');
43 assert.equal(results.resultKind('https://example.com/foo-actual.png'), 'actual');
44 assert.equal(results.resultKind('https://example.com/foo-expected.png'), 'expected');
45 assert.equal(results.resultKind('https://example.com/foo-diff.png'), 'diff');
46 assert.equal(results.resultKind('https://example.com/foo-pretty-diff.html'), 'diff');
47 assert.equal(results.resultKind('https://example.com/foo-wdiff.html'), 'diff');
48 assert.equal(results.resultKind('https://example.com/foo-xyz.html'), 'unknown');
51 it('should get result type', function() {
52 assert.equal(results.resultType('https://example.com/foo-actual.txt'), 'text');
53 assert.equal(results.resultType('https://example.com/foo-expected.txt'), 'text');
54 assert.equal(results.resultType('https://example.com/foo-diff.txt'), 'text');
55 assert.equal(results.resultType('https://example.com/foo.bar-actual.txt'), 'text');
56 assert.equal(results.resultType('https://example.com/foo.bar-expected.txt'), 'text');
57 assert.equal(results.resultType('https://example.com/foo.bar-diff.txt'), 'text');
58 assert.equal(results.resultType('https://example.com/foo-actual.png'), 'image');
59 assert.equal(results.resultType('https://example.com/foo-expected.png'), 'image');
60 assert.equal(results.resultType('https://example.com/foo-diff.png'), 'image');
61 assert.equal(results.resultType('https://example.com/foo-pretty-diff.html'), 'text');
62 assert.equal(results.resultType('https://example.com/foo-wdiff.html'), 'text');
63 assert.equal(results.resultType('https://example.com/foo.xyz'), 'text');
66 it('fetchResultsURLS', function(done) {
67 var simulator = new NetworkSimulator(assert, done);
70 simulator.probe = function(url) {
72 if (url.endsWith('.txt'))
73 return Promise.resolve();
74 else if (/taco.+png$/.test(url))
75 return Promise.resolve();
77 return Promise.reject();
79 simulator.runTest(function() {
80 return Promise.resolve().then(function() {
81 return results.fetchResultsURLs({
82 'builderName': 'Mock Builder',
83 'testName': 'userscripts/another-test.html',
84 'failureTypeList': ['IMAGE', 'CRASH'],
85 }).then(function(resultURLs) {
86 assert.deepEqual(resultURLs, [
87 MockResultsBaseURL + '/userscripts/another-test-crash-log.txt'
91 return results.fetchResultsURLs({
92 'builderName': 'Mock Builder',
93 'testName': 'userscripts/another-test.html',
94 'failureTypeList': ['TIMEOUT'],
95 }).then(function(resultURLs) {
96 assert.deepEqual(resultURLs, []);
99 return results.fetchResultsURLs({
100 'builderName': 'Mock Builder',
101 'testName': 'userscripts/taco.html',
102 'failureTypeList': ['IMAGE', 'IMAGE+TEXT'],
103 }).then(function(resultURLs) {
104 assert.deepEqual(resultURLs, [
105 MockResultsBaseURL + '/userscripts/taco-expected.png',
106 MockResultsBaseURL + '/userscripts/taco-actual.png',
107 MockResultsBaseURL + '/userscripts/taco-diff.png',
108 MockResultsBaseURL + '/userscripts/taco-expected.txt',
109 MockResultsBaseURL + '/userscripts/taco-actual.txt',
110 MockResultsBaseURL + '/userscripts/taco-diff.txt',
114 return results.fetchResultsURLs({
115 'builderName': 'Mock Builder',
116 'testName': 'userscripts/another-test.html',
117 'failureTypeList': ['LEAK'],
118 }).then(function(resultURLs) {
119 assert.deepEqual(resultURLs, [
120 MockResultsBaseURL + '/userscripts/another-test-leak-log.txt'
124 assert.deepEqual(probedURLs, [
125 MockResultsBaseURL + '/userscripts/another-test-expected.png',
126 MockResultsBaseURL + '/userscripts/another-test-actual.png',
127 MockResultsBaseURL + '/userscripts/another-test-diff.png',
128 MockResultsBaseURL + '/userscripts/another-test-crash-log.txt',
129 MockResultsBaseURL + '/userscripts/taco-expected.png',
130 MockResultsBaseURL + '/userscripts/taco-actual.png',
131 MockResultsBaseURL + '/userscripts/taco-diff.png',
132 MockResultsBaseURL + '/userscripts/taco-actual.txt',
133 MockResultsBaseURL + '/userscripts/taco-expected.txt',
134 MockResultsBaseURL + '/userscripts/taco-diff.txt',
135 MockResultsBaseURL + '/userscripts/another-test-leak-log.txt',