Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / chrome / test / data / webui / about_invalidations_browsertest.js
blobcb4c36f40c3c89a50b531a0e9f374627635899d6
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 /**
6  * TestFixture for Invalidations WebUI testing.
7  * @extends {testing.Test}
8  * @constructor
9  */
10 function InvalidationsWebUITest() {}
12 InvalidationsWebUITest.prototype = {
13   __proto__: testing.Test.prototype,
15   /**
16    * Browse to the Invalidations page.
17    */
18   browsePreload: 'chrome://invalidations',
19   runAccessibilityChecks: false,
20   accessibilityIssuesAreErrors: false
23 // Test that registering an invalidations appears properly on the textarea.
24 TEST_F('InvalidationsWebUITest', 'testRegisteringNewInvalidation', function() {
25   var invalidationsLog = $('invalidations-log');
26   var invalidation = [{
27     isUnknownVersion: 'true',
28     objectId: {name: 'EXTENSIONS', source: 1004}
29   }];
30   invalidationsLog.value = '';
31   chrome.invalidations.logInvalidations(invalidation);
32   var isContained =
33     invalidationsLog.value.indexOf(
34       'Received Invalidation with type ' +
35       '"EXTENSIONS" version "Unknown" with payload "undefined"') != -1;
36   expectTrue(isContained, 'Actual log is:' + invalidationsLog.value);
38 });
40 // Test that changing the Invalidations Service state appears both in the
41 // span and in the textarea.
42 TEST_F('InvalidationsWebUITest', 'testChangingInvalidationsState', function() {
43   var invalidationsState = $('invalidations-state');
44   var invalidationsLog = $('invalidations-log');
45   var newState = 'INVALIDATIONS_ENABLED';
46   var newNewState = 'TRANSIENT_INVALIDATION_ERROR';
48   chrome.invalidations.updateInvalidatorState(newState);
49   var isContainedState = invalidationsState.textContent.indexOf(
50       'INVALIDATIONS_ENABLED') != -1;
51   expectTrue(isContainedState, 'could not change the invalidations text');
53   invalidationsLog.value = '';
54   chrome.invalidations.updateInvalidatorState(newNewState);
55   var isContainedState2 = invalidationsState.textContent.indexOf(
56       'TRANSIENT_INVALIDATION_ERROR') != -1;
57   expectTrue(isContainedState2, 'could not change the invalidations text');
58   var isContainedLog =
59     invalidationsLog.value.indexOf(
60       'Invalidations service state changed to ' +
61       '"TRANSIENT_INVALIDATION_ERROR"') != -1;
62   expectTrue(isContainedLog, 'Actual log is:' + invalidationsLog.value);
63 });
65 // Test that objects ids appear on the table.
66 TEST_F('InvalidationsWebUITest', 'testRegisteringNewIds', function() {
67   var newDataType = [
68     { name: 'EXTENSIONS', source: 1004, totalCount: 0},
69     { name: 'FAVICON_IMAGE', source: 1004, totalCount: 0}
70   ];
71   var pattern1 = ['Fake', '1004', 'EXTENSIONS', '0', '0', '', '', ''];
72   var pattern2 = ['Fake', '1004', 'FAVICON_IMAGE', '0', '0', '', '', ''];
73   // Register two objects ID with 'Fake' registrar
74   chrome.invalidations.updateIds('Fake', newDataType);
75   // Disable the Extensions ObjectId by only sending FAVICON_IMAGE
76   newDataType = [{name: 'FAVICON_IMAGE', source: 1004}];
77   chrome.invalidations.updateIds('Fake', newDataType);
79   // Test that the two patterns are contained in the table.
80   var oidTable = $('objectsid-table-container');
81   var foundPattern1 = false;
82   var foundPattern2 = false;
83   for (var row = 0; row < oidTable.rows.length; row++) {
84     var pattern1Test = true;
85     var pattern2Test = true;
86     for (var cell = 0; cell < oidTable.rows[row].cells.length; cell++) {
87       pattern1Test = pattern1Test
88           && (pattern1[cell] == oidTable.rows[row].cells[cell].textContent);
89       pattern2Test = pattern2Test
90           && (pattern2[cell] == oidTable.rows[row].cells[cell].textContent);
91     }
92     if (pattern1Test)
93       expectEquals('greyed', oidTable.rows[row].className);
94     if (pattern2Test)
95       expectEquals('content', oidTable.rows[row].className);
97     foundPattern1 = foundPattern1 || pattern1Test;
98     foundPattern2 = foundPattern2 || pattern2Test;
99     if (foundPattern2)
100       expectTrue(foundPattern1, 'The entries were not ordererd');
101   }
102   expectTrue(foundPattern1 && foundPattern2, "couldn't find both objects ids");
105 // Test that registering new handlers appear on the website.
106 TEST_F('InvalidationsWebUITest', 'testUpdatingRegisteredHandlers', function() {
107   function text() { return $('registered-handlers').textContent; }
108   chrome.invalidations.updateHandlers(['FakeApi', 'FakeClient']);
109   expectNotEquals(text().indexOf('FakeApi'), -1);
110   expectNotEquals(text().indexOf('FakeClient'), -1);
112   chrome.invalidations.updateHandlers(['FakeClient']);
113   expectEquals(text().indexOf('FakeApi'), -1);
114   expectNotEquals(text().indexOf('FakeClient'), -1);
117 // Test that an object showing internal state is correctly displayed.
118 TEST_F('InvalidationsWebUITest', 'testUpdatingInternalDisplay', function() {
119   var newDetailedStatus = {MessagesSent: 1};
120   chrome.invalidations.updateDetailedStatus(newDetailedStatus);
121   expectEquals( $('internal-display').value, '{\n  \"MessagesSent\": 1\n}');