| Index: Tools/GardeningServer/ui/test/ct-failure-analyzer-tests.html
|
| diff --git a/Tools/GardeningServer/ui/test/ct-failure-analyzer-tests.html b/Tools/GardeningServer/ui/test/ct-failure-analyzer-tests.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..226b3c5ce6580bb4e987880e04911f36c984e5f2
|
| --- /dev/null
|
| +++ b/Tools/GardeningServer/ui/test/ct-failure-analyzer-tests.html
|
| @@ -0,0 +1,73 @@
|
| +<!--
|
| +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-failure-analyzer.html">
|
| +
|
| +<script>
|
| +(function () {
|
| +
|
| +var assert = chai.assert;
|
| +
|
| +describe('ct-failure-analyzer', function() {
|
| + describe('_failureComparator', function() {
|
| + it('should sort failures', function() {
|
| + var analyzer = document.createElement('ct-failure-analyzer');
|
| + var resultsByBuilder = {};
|
| + var failure1 = new CTFailure("step1", "reason1", resultsByBuilder, 123, 123);
|
| + var failure2 = new CTFailure("step1", "reason2", resultsByBuilder, 123, 123);
|
| + var failure3 = new CTFailure("step1", "reason3", resultsByBuilder, 123, 123);
|
| + var failure4 = new CTFailure("step2", "reason1", resultsByBuilder, 123, 123);
|
| +
|
| + var failures = [failure4, failure3, failure2, failure1];
|
| + var expectedFailures = [failure1, failure2, failure3, failure4];
|
| + assert.deepEqual(failures.sort(analyzer._failureComparator), expectedFailures);
|
| + });
|
| + });
|
| +
|
| + describe('_failureListComparator', function() {
|
| + it('should compare failures correctly', function() {
|
| + var analyzer = document.createElement('ct-failure-analyzer');
|
| + var revision1 = {
|
| + 'chromium': 1,
|
| + 'blink': 2
|
| + };
|
| + var revision2 = {
|
| + 'chromium': 2,
|
| + 'blink': 1
|
| + };
|
| + var revision3 = {
|
| + 'chromium': 2,
|
| + 'blink': 2
|
| + };
|
| + var resultsByBuilder = {};
|
| + var failure1 = new CTFailure("step", "reason", resultsByBuilder, revision1, revision1);
|
| + var failure2 = new CTFailure("step", "reason", resultsByBuilder, revision2, revision2);
|
| + var failure3 = new CTFailure("step", "reason", resultsByBuilder, revision3, revision3);
|
| + var failure4 = new CTFailure("step", "reason", resultsByBuilder, null, null);
|
| +
|
| + // Sort by last revision first.
|
| + assert(analyzer._failureListComparator('chromium', [failure1], [failure2]) > 0);
|
| + assert(analyzer._failureListComparator('chromium', [failure2], [failure1]) < 0);
|
| + assert(analyzer._failureListComparator('chromium', [failure1], [failure1]) == 0);
|
| +
|
| + // If the tree revisions are equal, take others.
|
| + assert(analyzer._failureListComparator('chromium', [failure2], [failure3]) > 0);
|
| +
|
| + // Prioritize the given tree.
|
| + assert(analyzer._failureListComparator('chromium', [failure1], [failure2]) > 0);
|
| + assert(analyzer._failureListComparator('blink', [failure1], [failure2]) < 0);
|
| +
|
| + // Default to 'chromium'.
|
| + assert(analyzer._failureListComparator(undefined, [failure1], [failure2]) > 0);
|
| +
|
| + // Failures without a revision go to the end.
|
| + assert(analyzer._failureListComparator('chromium', [failure4], [failure1]) < 0);
|
| + });
|
| + });
|
| +});
|
| +
|
| +})()
|
| +</script>
|
|
|