| 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 5a261bf1ee9f88c0e1e8298aeb2f908f7287bf44..733bac59692a9f403e9d0809775371cac4b0725f 100644
|
| --- a/chrome/browser/ui/webui/sync_internals_browsertest.js
|
| +++ b/chrome/browser/ui/webui/sync_internals_browsertest.js
|
| @@ -20,7 +20,9 @@ SyncInternalsWebUITest.prototype = {
|
|
|
| /** @override */
|
| preLoad: function() {
|
| - // TODO(zea): mock out the the sync info to fake an active syncer.
|
| + this.makeAndRegisterMockHandler([
|
| + 'getAllNodes',
|
| + ]);
|
| },
|
|
|
| /**
|
| @@ -48,6 +50,114 @@ SyncInternalsWebUITest.prototype = {
|
| }
|
| };
|
|
|
| +/** Constant hard-coded value to return from mock getAllNodes */
|
| +var HARD_CODED_ALL_NODES = [
|
| +{
|
| + "BASE_SERVER_SPECIFICS": {},
|
| + "BASE_VERSION": "1388699799780000",
|
| + "CTIME": "Wednesday, December 31, 1969 4:00:00 PM",
|
| + "ID": "sZ:ADqtAZw5kjSwSkukraMoMX6z0OlFXENzhA+1HZNcO6LbATQrkVenHJS5" +
|
| + "AgICYfj8/6KcvwlCw3FIvcRFtOEP3zSP5YJ1VH53/Q==",
|
| + "IS_DEL": false,
|
| + "IS_DIR": true,
|
| + "IS_UNAPPLIED_UPDATE": false,
|
| + "IS_UNSYNCED": false,
|
| + "LOCAL_EXTERNAL_ID": "0",
|
| + "META_HANDLE": "376",
|
| + "MTIME": "Wednesday, December 31, 1969 4:00:00 PM",
|
| + "NON_UNIQUE_NAME": "Typed URLs",
|
| + "PARENT_ID": "r",
|
| + "SERVER_CTIME": "Wednesday, December 31, 1969 4:00:00 PM",
|
| + "SERVER_IS_DEL": false,
|
| + "SERVER_IS_DIR": true,
|
| + "SERVER_MTIME": "Wednesday, December 31, 1969 4:00:00 PM",
|
| + "SERVER_NON_UNIQUE_NAME": "Typed URLs",
|
| + "SERVER_PARENT_ID": "r",
|
| + "SERVER_SPECIFICS": {
|
| + "typed_url": {
|
| + "visit_transitions": [],
|
| + "visits": []
|
| + }
|
| + },
|
| + "SERVER_UNIQUE_POSITION": "INVALID[]",
|
| + "SERVER_VERSION": "1388699799780000",
|
| + "SPECIFICS": {
|
| + "typed_url": {
|
| + "visit_transitions": [],
|
| + "visits": []
|
| + }
|
| + },
|
| + "SYNCING": false,
|
| + "TRANSACTION_VERSION": "1",
|
| + "UNIQUE_BOOKMARK_TAG": "",
|
| + "UNIQUE_CLIENT_TAG": "",
|
| + "UNIQUE_POSITION": "INVALID[]",
|
| + "UNIQUE_SERVER_TAG": "google_chrome_typed_urls",
|
| + "isDirty": false,
|
| + "serverModelType": "Typed URLs"
|
| +},
|
| +{
|
| + "BASE_SERVER_SPECIFICS": {},
|
| + "BASE_VERSION": "1372291923970334",
|
| + "CTIME": "Wednesday, June 26, 2013 5:12:03 PM",
|
| + "ID": "sZ:ADqtAZyz70DhOIusPT1v2XCd/8YT8Fy43WlqdRyH6UwoBAqMkX5Pnkl/sW9A" +
|
| + "+AVrmzAPWFTrRBf0AWD57HyN4GcYXwSR9q4lYA==",
|
| + "IS_DEL": false,
|
| + "IS_DIR": false,
|
| + "IS_UNAPPLIED_UPDATE": false,
|
| + "IS_UNSYNCED": false,
|
| + "LOCAL_EXTERNAL_ID": "0",
|
| + "META_HANDLE": "3011",
|
| + "MTIME": "Wednesday, June 26, 2013 5:12:03 PM",
|
| + "NON_UNIQUE_NAME": "http://chrome.com/",
|
| + "PARENT_ID": "sZ:ADqtAZw5kjSwSkukraMoMX6z0OlFXENzhA+1HZNcO6LbATQrkVen" +
|
| + "HJS5AgICYfj8/6KcvwlCw3FIvcRFtOEP3zSP5YJ1VH53/Q==",
|
| + "SERVER_CTIME": "Wednesday, June 26, 2013 5:12:03 PM",
|
| + "SERVER_IS_DEL": false,
|
| + "SERVER_IS_DIR": false,
|
| + "SERVER_MTIME": "Wednesday, June 26, 2013 5:12:03 PM",
|
| + "SERVER_NON_UNIQUE_NAME": "http://chrome.com/",
|
| + "SERVER_PARENT_ID": "sZ:ADqtAZw5kjSwSkukraMoMX6z0OlFXENzhA+1HZNcO6LbAT" +
|
| + "QrkVenHJS5AgICYfj8/6KcvwlCw3FIvcRFtOEP3zSP5YJ1VH53/Q==",
|
| + "SERVER_SPECIFICS": {
|
| + "typed_url": {
|
| + "hidden": false,
|
| + "title": "Chrome",
|
| + "url": "http://chrome.com/",
|
| + "visit_transitions": [
|
| + "268435457"
|
| + ],
|
| + "visits": [
|
| + "13016765523677321"
|
| + ]
|
| + }
|
| + },
|
| + "SERVER_UNIQUE_POSITION": "INVALID[]",
|
| + "SERVER_VERSION": "1372291923970334",
|
| + "SPECIFICS": {
|
| + "typed_url": {
|
| + "hidden": false,
|
| + "title": "Chrome",
|
| + "url": "http://chrome.com/",
|
| + "visit_transitions": [
|
| + "268435457"
|
| + ],
|
| + "visits": [
|
| + "13016765523677321"
|
| + ]
|
| + }
|
| + },
|
| + "SYNCING": false,
|
| + "TRANSACTION_VERSION": "1",
|
| + "UNIQUE_BOOKMARK_TAG": "",
|
| + "UNIQUE_CLIENT_TAG": "J28uWKpXPuQwR3SJKbuLqzYGOcM=",
|
| + "UNIQUE_POSITION": "INVALID[]",
|
| + "UNIQUE_SERVER_TAG": "",
|
| + "isDirty": false,
|
| + "serverModelType": "Typed URLs"
|
| +}
|
| +];
|
| +
|
| TEST_F('SyncInternalsWebUITest', 'Uninitialized', function() {
|
| assertNotEquals(null, chrome.sync.aboutInfo);
|
| expectTrue(this.hasInDetails(true, 'Username', ''));
|
| @@ -77,3 +187,57 @@ TEST_F('SyncInternalsWebUITest', 'SearchTabDoesntChangeOnItemSelect',
|
| $('sync-results-list').getListItemByIndex(0).selected = true;
|
| expectTrue($('sync-search-tab').selected);
|
| });
|
| +
|
| +TEST_F('SyncInternalsWebUITest', 'NodeBrowserTest', function() {
|
| + this.mockHandler.expects(once()).getAllNodes([]).will(
|
| + callFunction(function() {
|
| + chrome.sync.getAllNodes.handleReply(HARD_CODED_ALL_NODES);
|
| + }));
|
| +
|
| + // Hit the refresh button.
|
| + $('node-browser-refresh-button').click();
|
| +
|
| + // Check that the refresh time was updated.
|
| + expectNotEquals($('node-browser-refresh-time').textContent, 'Never');
|
| +
|
| + // Verify some hard-coded assumptions. These depend on the vaue of the
|
| + // hard-coded nodes, specified elsewhere in this file.
|
| +
|
| + // Start with the tree itself.
|
| + var tree = $('sync-node-tree');
|
| + assertEquals(1, tree.items.length);
|
| +
|
| + // Check the type root and expand it.
|
| + var typeRoot = tree.items[0];
|
| + expectFalse(typeRoot.expanded);
|
| + typeRoot.expanded = true;
|
| + assertEquals(1, typeRoot.items.length);
|
| +
|
| + // An actual sync node. The child of the type root.
|
| + var leaf = typeRoot.items[0];
|
| +
|
| + // Verify that selecting it affects the details view.
|
| + expectTrue($('node-details').hasAttribute('hidden'));
|
| + leaf.selected = true;
|
| + expectFalse($('node-details').hasAttribute('hidden'));
|
| +});
|
| +
|
| +TEST_F('SyncInternalsWebUITest', 'NodeBrowserRefreshOnTabSelect', function() {
|
| + this.mockHandler.expects(once()).getAllNodes([]).will(
|
| + callFunction(function() {
|
| + chrome.sync.getAllNodes.handleReply(HARD_CODED_ALL_NODES);
|
| + }));
|
| +
|
| + // Should start with non-refreshed node browser.
|
| + expectEquals($('node-browser-refresh-time').textContent, 'Never');
|
| +
|
| + // Selecting the tab will refresh it.
|
| + $('sync-browser-tab').selected = true;
|
| + expectNotEquals($('node-browser-refresh-time').textContent, 'Never');
|
| +
|
| + // Re-selecting the tab shouldn't re-refresh.
|
| + $('node-browser-refresh-time').textContent = 'TestCanary';
|
| + $('sync-browser-tab').selected = false;
|
| + $('sync-browser-tab').selected = true;
|
| + expectEquals($('node-browser-refresh-time').textContent, 'TestCanary');
|
| +});
|
|
|