Index: chrome/browser/ui/webui/sync_internals_browsertest.js |
diff --git a/chrome/browser/ui/webui/sync_internals_browsertest.js b/chrome/browser/ui/webui/sync_internals_browsertest.js |
index 733bac59692a9f403e9d0809775371cac4b0725f..0b87442ff1ca5ff386c1e486c02fe0fdfc4695bc 100644 |
--- a/chrome/browser/ui/webui/sync_internals_browsertest.js |
+++ b/chrome/browser/ui/webui/sync_internals_browsertest.js |
@@ -18,6 +18,12 @@ SyncInternalsWebUITest.prototype = { |
*/ |
browsePreload: 'chrome://sync-internals', |
+ /** |
+ * Disable accessibility testing for this page. |
+ * @override |
+ */ |
+ runAccessibilityChecks: false, |
+ |
/** @override */ |
preLoad: function() { |
this.makeAndRegisterMockHandler([ |
@@ -50,7 +56,10 @@ SyncInternalsWebUITest.prototype = { |
} |
}; |
-/** Constant hard-coded value to return from mock getAllNodes */ |
+/** |
+ * Constant hard-coded value to return from mock getAllNodes. |
+ * @const |
+ */ |
var HARD_CODED_ALL_NODES = [ |
{ |
"BASE_SERVER_SPECIFICS": {}, |
@@ -158,12 +167,85 @@ var HARD_CODED_ALL_NODES = [ |
} |
]; |
+/** |
+ * Constant hard-coded value to return from mock getAboutInfo. |
+ * @const |
+ */ |
+HARD_CODED_ABOUT_INFO = { |
+ "actionable_error": [ |
+ { |
+ "is_valid": false, |
+ "stat_name": "Error Type", |
+ "stat_value": "Uninitialized" |
+ }, |
+ { |
+ "is_valid": false, |
+ "stat_name": "Action", |
+ "stat_value": "Uninitialized" |
+ }, |
+ { |
+ "is_valid": false, |
+ "stat_name": "URL", |
+ "stat_value": "Uninitialized" |
+ }, |
+ { |
+ "is_valid": false, |
+ "stat_name": "Error Description", |
+ "stat_value": "Uninitialized" |
+ } |
+ ], |
+ "actionable_error_detected": false, |
+ "details": [ |
+ { |
+ "data": [ |
+ { |
+ "is_valid": true, |
+ "stat_name": "Summary", |
+ "stat_value": "Sync service initialized" |
+ } |
+ ], |
+ "is_sensitive": false, |
+ "title": "Summary" |
+ }, |
+ ], |
+ "type_status": [ |
+ { |
+ "name": "Model Type", |
+ "num_entries": "Total Entries", |
+ "num_live": "Live Entries", |
+ "status": "header", |
+ "value": "Group Type" |
+ }, |
+ { |
+ "name": "Bookmarks", |
+ "num_entries": 2793, |
+ "num_live": 2793, |
+ "status": "ok", |
+ "value": "Active: GROUP_UI" |
+ }, |
+ ], |
+ "unrecoverable_error_detected": false |
+}; |
+ |
TEST_F('SyncInternalsWebUITest', 'Uninitialized', function() { |
assertNotEquals(null, chrome.sync.aboutInfo); |
expectTrue(this.hasInDetails(true, 'Username', '')); |
expectTrue(this.hasInDetails(false, 'Summary', 'Uninitialized')); |
}); |
+TEST_F('SyncInternalsWebUITest', 'LoadPastedAboutInfo', function() { |
+ // Expose the text field. |
+ $('import-status').click(); |
+ |
+ // Fill it with fake data. |
+ $('status-text').value = JSON.stringify(HARD_CODED_ABOUT_INFO); |
+ |
+ // Trigger the import. |
+ $('import-status').click(); |
+ |
+ expectTrue(this.hasInDetails(true, 'Summary', 'Sync service initialized')); |
+}); |
+ |
TEST_F('SyncInternalsWebUITest', 'SearchTabDoesntChangeOnItemSelect', |
function() { |
// Select the search tab. |
@@ -241,3 +323,45 @@ TEST_F('SyncInternalsWebUITest', 'NodeBrowserRefreshOnTabSelect', function() { |
$('sync-browser-tab').selected = true; |
expectEquals($('node-browser-refresh-time').textContent, 'TestCanary'); |
}); |
+ |
+// Tests that the events log page correctly receives and displays an event. |
+TEST_F('SyncInternalsWebUITest', 'EventLogTest', function() { |
+ // Dispatch an event. |
+ var connectionEvent = new Event('onConnectionStatusChange'); |
+ connectionEvent.details = {'status': 'CONNECTION_OK'}; |
+ chrome.sync.events.dispatchEvent(connectionEvent); |
+ |
+ // Verify that it is displayed in the events log. |
+ var syncEventsTable = $('sync-events'); |
+ var firstRow = syncEventsTable.children[0]; |
+ |
+ // Makes some assumptions about column ordering. We'll need re-think this if |
+ // it turns out to be a maintenance burden. |
+ assertEquals(4, firstRow.children.length); |
+ var submoduleName = firstRow.children[1].textContent; |
+ var eventName = firstRow.children[2].textContent; |
+ var detailsText = firstRow.children[3].textContent; |
+ |
+ expectGE(submoduleName.indexOf('manager'), 0, |
+ 'submoduleName=' + submoduleName); |
+ expectGE(eventName.indexOf('onConnectionStatusChange'), 0, |
+ 'eventName=' + eventName); |
+ expectGE(detailsText.indexOf('CONNECTION_OK'), 0, |
+ 'detailsText=' + detailsText); |
+}); |
+ |
+TEST_F('SyncInternalsWebUITest', 'DumpSyncEventsToText', function() { |
+ // Dispatch an event. |
+ var connectionEvent = new Event('onConnectionStatusChange'); |
+ connectionEvent.details = {'status': 'CONNECTION_OK'} |
+ chrome.sync.events.dispatchEvent(connectionEvent); |
+ |
+ // Click the dump-to-text button. |
+ $('dump-to-text').click(); |
+ |
+ // Verify our event is among the results. |
+ var eventDumpText = $('data-dump').textContent; |
+ |
+ expectGE(eventDumpText.indexOf('onConnectionStatusChange'), 0); |
+ expectGE(eventDumpText.indexOf('CONNECTION_OK'), 0); |
+}); |