blob: 5780009f0f88c1eadd26929d7e07750ea49004f3 [file] [log] [blame]
<!--
Copyright 2014 The Chromium Authors. All rights reserved.
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<link rel="import" href="../ct-results-detail.html">
<link rel="import" href="../../lib/network-simulator.html">
<link rel="import" href="../../model/ct-failure.html">
<script>
(function () {
var assert = chai.assert;
describe('ct-results-detail', function() {
describe('webkit failures', function() {
var resultsDetail;
var probedUrls;
// Set to test different types.
var resultType = '';
var extensions = [];
beforeEach(function(done) {
var simulator = new NetworkSimulator(assert, done);
probedUrls = [];
simulator.probe = function(url) {
probedUrls.push(url);
for (var i = 0; i < extensions.length; i++) {
if (url.endsWith(extensions[i]))
return Promise.resolve();
}
return Promise.reject();
};
// FIXME: Use a proper mock model object.
var failure = new CTFailure(
"testName", "dummy/test.html",
{
"dummy builder": {
"actual": resultType,
},
}, 177164, 177165
);
simulator.runTest(function() {
resultsDetail = document.createElement('ct-results-detail');
resultsDetail.builder = 'dummy builder';
resultsDetail.failure = failure;
});
setTimeout(done);
});
describe('image+text', function() {
before(function() {
resultType = "IMAGE+TEXT";
extensions = ['.txt', '.png'];
});
it('should fetch the correct URLs', function() {
assert.deepEqual(probedUrls, [
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-expected.png',
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-actual.png',
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-diff.png',
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-actual.txt',
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-expected.txt',
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-diff.txt',
]);
assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-results-comparison'), 2);
assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-test-output'), 0);
});
});
describe('crash', function() {
before(function() {
resultType = "CRASH";
extensions = ['.txt'];
});
it('should fetch the correct URLs', function() {
assert.deepEqual(probedUrls, [
'https://storage.googleapis.com/chromium-layout-test-archives/dummy_builder/results/layout-test-results/dummy/test-crash-log.txt',
]);
assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-test-output'), 1);
assert.lengthOf(resultsDetail.shadowRoot.querySelectorAll('ct-results-comparison'), 0);
});
});
});
describe('failures', function() {
var result;
var expectedUrl;
afterEach(function() {
var outputs = result.shadowRoot.querySelectorAll('ct-test-output');
assert.lengthOf(outputs, 1);
assert.equal(outputs[0].url, expectedUrl);
assert.lengthOf(result.shadowRoot.querySelectorAll('ct-results-comparison'), 0);
});
describe('unknown failures', function() {
it('should show the failure output', function(done) {
result = document.createElement('ct-results-detail');
result.builder = 'dummy builder';
var resultsByBuilder = {
"dummy builder": {
actual: "UNKNOWN",
lastFailingBuild: 124,
masterUrl: 'http://masterurl/'
},
};
result.failure = new CTFailure('foo_step', 'test.html', resultsByBuilder, 123, 124);
expectedUrl = 'http://masterurl//builders/dummy%20builder/builds/124/steps/foo_step/logs/stdio';
setTimeout(done);
});
});
describe('failures', function() {
it('should show the failure output', function(done) {
result = document.createElement('ct-results-detail');
result.builder = 'dummy builder';
var resultsByBuilder = {
"dummy builder": {
actual: "FAIL",
lastFailingBuild: 124,
masterUrl: 'http://masterurl/'
},
};
result.failure = new CTFailure('foo_step', 'TestSuite.TestName', resultsByBuilder, 123, 124);
expectedUrl = 'http://masterurl//builders/dummy%20builder/builds/124/steps/foo_step/logs/TestName';
setTimeout(done);
});
});
});
});
})()
</script>