Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / webui / sync_internals_browsertest.js
index 3e6aa24..b0f1ae7 100644 (file)
@@ -60,171 +60,173 @@ SyncInternalsWebUITest.prototype = {
  * Constant hard-coded value to return from mock getAllNodes.
  * @const
  */
-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"
-}
-];
+var HARD_CODED_ALL_NODES = [{
+  'nodes': [{
+    'ATTACHMENT_METADATA': '',
+    'BASE_SERVER_SPECIFICS': {},
+    'BASE_VERSION': '1396470970810000',
+    'CTIME': 'Wednesday, December 31, 1969 4:00:00 PM',
+    'ID': 'sZ:ADqtAZwzF4GOIyvkI2enSI62AU5p/7MNmvuSSyf7yXJ1SkJwpp1YL' +
+      '6bbMkF8inzqW+EO6n2aPJ/uXccW9GHxorBlnKoZAWHVzg==',
+    'IS_DEL': false,
+    'IS_DIR': true,
+    'IS_UNAPPLIED_UPDATE': false,
+    'IS_UNSYNCED': false,
+    'LOCAL_EXTERNAL_ID': '0',
+    'META_HANDLE': '387',
+    'MTIME': 'Wednesday, December 31, 1969 4:00:00 PM',
+    'NON_UNIQUE_NAME': 'Autofill',
+    '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': 'Autofill',
+    'SERVER_PARENT_ID': 'r',
+    'SERVER_SPECIFICS': {
+      'autofill': {
+        'usage_timestamp': []
+      }
+    },
+    'SERVER_UNIQUE_POSITION': 'INVALID[]',
+    'SERVER_VERSION': '1396470970810000',
+    'SPECIFICS': {
+      'autofill': {
+        'usage_timestamp': []
+      }
+    },
+    'SYNCING': false,
+    'TRANSACTION_VERSION': '1',
+    'UNIQUE_BOOKMARK_TAG': '',
+    'UNIQUE_CLIENT_TAG': '',
+    'UNIQUE_POSITION': 'INVALID[]',
+    'UNIQUE_SERVER_TAG': 'google_chrome_autofill',
+    'isDirty': false,
+    'serverModelType': 'Autofill'
+  }, {
+    'ATTACHMENT_METADATA': '',
+    'BASE_SERVER_SPECIFICS': {},
+    'BASE_VERSION': '1394241139528639',
+    'CTIME': 'Friday, March 7, 2014 5:12:19 PM',
+    'ID': 'sZ:ADqtAZwzc/ol1iaz+yNLjjWak9PBE0o/hATzpqJsyq/HX2xzV2f88' +
+      'FaOrT7HDE4tyn7zx2LWgkAFvZfCA5mOy4p0XFgiY0L+mw==',
+    'IS_DEL': false,
+    'IS_DIR': false,
+    'IS_UNAPPLIED_UPDATE': false,
+    'IS_UNSYNCED': false,
+    'LOCAL_EXTERNAL_ID': '0',
+    'META_HANDLE': '2989',
+    'MTIME': 'Friday, March 7, 2014 5:12:19 PM',
+    'NON_UNIQUE_NAME': 'autofill_entry|Email|rlsynctet2',
+    'PARENT_ID': 'sZ:ADqtAZwzF4GOIyvkI2enSI62AU5p/7MNmvuSSyf7yXJ1Sk' +
+      'Jwpp1YL6bbMkF8inzqW+EO6n2aPJ/uXccW9GHxorBlnKoZAWHVzg==',
+    'SERVER_CTIME': 'Friday, March 7, 2014 5:12:19 PM',
+    'SERVER_IS_DEL': false,
+    'SERVER_IS_DIR': false,
+    'SERVER_MTIME': 'Friday, March 7, 2014 5:12:19 PM',
+    'SERVER_NON_UNIQUE_NAME': 'autofill_entry|Email|rlsynctet2',
+    'SERVER_PARENT_ID': 'sZ:ADqtAZwzF4GOIyvkI2enSI62AU5p/7MNmvuSSyf' +
+      '7yXJ1SkJwpp1YL6bbMkF8inzqW+EO6n2aPJ/uXccW9GHxorBlnKoZAWHVzg==',
+    'SERVER_SPECIFICS': {
+      'autofill': {
+        'name': 'Email',
+        'usage_timestamp': ['13038713887000000', '13038713890000000'],
+        'value': 'rlsynctet2'
+      }
+    },
+    'SERVER_UNIQUE_POSITION': 'INVALID[]',
+    'SERVER_VERSION': '1394241139528639',
+    'SPECIFICS': {
+      'autofill': {
+        'name': 'Email',
+        'usage_timestamp': ['13038713887000000', '13038713890000000'],
+        'value': 'rlsynctet2'
+      }
+    },
+    'SYNCING': false,
+    'TRANSACTION_VERSION': '1',
+    'UNIQUE_BOOKMARK_TAG': '',
+    'UNIQUE_CLIENT_TAG': 'EvliorKUf1rLjT+BGkNZp586Tsk=',
+    'UNIQUE_POSITION': 'INVALID[]',
+    'UNIQUE_SERVER_TAG': '',
+    'isDirty': false,
+    'serverModelType': 'Autofill'
+  }],
+  'type': 'Autofill'
+}];
 
 /**
  * A value to return in mock onReceivedUpdatedAboutInfo event.
  * @const
  */
 HARD_CODED_ABOUT_INFO = {
-  "actionable_error": [
+  'actionable_error': [
     {
-      "is_valid": false,
-      "stat_name": "Error Type",
-      "stat_value": "Uninitialized"
+      'is_valid': false,
+      'stat_name': 'Error Type',
+      'stat_value': 'Uninitialized'
     },
     {
-      "is_valid": false,
-      "stat_name": "Action",
-      "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': 'URL',
+      'stat_value': 'Uninitialized'
     },
     {
-      "is_valid": false,
-      "stat_name": "Error Description",
-      "stat_value": "Uninitialized"
+      'is_valid': false,
+      'stat_name': 'Error Description',
+      'stat_value': 'Uninitialized'
     }
   ],
-  "actionable_error_detected": false,
-  "details": [
+  'actionable_error_detected': false,
+  'details': [
     {
-      "data": [
+      'data': [
         {
-          "is_valid": true,
-          "stat_name": "Summary",
-          "stat_value": "Sync service initialized"
+          'is_valid': true,
+          'stat_name': 'Summary',
+          'stat_value': 'Sync service initialized'
         }
       ],
-      "is_sensitive": false,
-      "title": "Summary"
+      'is_sensitive': false,
+      'title': 'Summary'
     },
   ],
-  "type_status": [
+  'type_status': [
     {
-      "name": "Model Type",
-      "num_entries": "Total Entries",
-      "num_live": "Live Entries",
-      "status": "header",
-      "value": "Group Type"
+      '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"
+      'name': 'Bookmarks',
+      'num_entries': 2793,
+      'num_live': 2793,
+      'status': 'ok',
+      'value': 'Active: GROUP_UI'
     },
   ],
-  "unrecoverable_error_detected": false
+  'unrecoverable_error_detected': false
+};
+
+NETWORK_EVENT_DETAILS_1 = {
+  'details': 'Notified types: Bookmarks, Autofill',
+  'proto': {},
+  'time': 1395874542192.407,
+  'type': 'Normal GetUpdate request',
+};
+
+NETWORK_EVENT_DETAILS_2 = {
+  'details': 'Received error: SYNC_AUTH_ERROR',
+  'proto': {},
+  'time': 1395874542192.837,
+  'type': 'GetUpdates Response',
 };
 
 TEST_F('SyncInternalsWebUITest', 'Uninitialized', function() {
@@ -246,6 +248,22 @@ TEST_F('SyncInternalsWebUITest', 'LoadPastedAboutInfo', function() {
   expectTrue(this.hasInDetails(true, 'Summary', 'Sync service initialized'));
 });
 
+TEST_F('SyncInternalsWebUITest', 'NetworkEventsTest', function() {
+  networkEvent1 = new Event('onProtocolEvent');
+  networkEvent1.details = NETWORK_EVENT_DETAILS_1;
+  networkEvent2 = new Event('onProtocolEvent');
+  networkEvent2.details = NETWORK_EVENT_DETAILS_2;
+
+  chrome.sync.events.dispatchEvent(networkEvent1);
+  chrome.sync.events.dispatchEvent(networkEvent2);
+
+  expectEquals(2, $('traffic-event-container').children.length);
+
+  // Test that repeated events are not re-displayed.
+  chrome.sync.events.dispatchEvent(networkEvent1);
+  expectEquals(2, $('traffic-event-container').children.length);
+});
+
 TEST_F('SyncInternalsWebUITest', 'SearchTabDoesntChangeOnItemSelect',
        function() {
   // Select the search tab.
@@ -271,10 +289,12 @@ TEST_F('SyncInternalsWebUITest', 'SearchTabDoesntChangeOnItemSelect',
 });
 
 TEST_F('SyncInternalsWebUITest', 'NodeBrowserTest', function() {
-  this.mockHandler.expects(once()).getAllNodes([]).will(
-      callFunction(function() {
-        chrome.sync.getAllNodes.handleReply(HARD_CODED_ALL_NODES);
-      }));
+  var getAllNodesSavedArgs = new SaveMockArguments();
+  this.mockHandler.expects(once()).
+      getAllNodes(getAllNodesSavedArgs.match(ANYTHING)).
+      will(callFunctionWithSavedArgs(getAllNodesSavedArgs,
+                                     chrome.sync.getAllNodesCallback,
+                                     HARD_CODED_ALL_NODES));
 
   // Hit the refresh button.
   $('node-browser-refresh-button').click();
@@ -305,10 +325,12 @@ TEST_F('SyncInternalsWebUITest', 'NodeBrowserTest', function() {
 });
 
 TEST_F('SyncInternalsWebUITest', 'NodeBrowserRefreshOnTabSelect', function() {
-  this.mockHandler.expects(once()).getAllNodes([]).will(
-      callFunction(function() {
-        chrome.sync.getAllNodes.handleReply(HARD_CODED_ALL_NODES);
-      }));
+  var getAllNodesSavedArgs = new SaveMockArguments();
+  this.mockHandler.expects(once()).
+      getAllNodes(getAllNodesSavedArgs.match(ANYTHING)).
+      will(callFunctionWithSavedArgs(getAllNodesSavedArgs,
+                                     chrome.sync.getAllNodesCallback,
+                                     HARD_CODED_ALL_NODES));
 
   // Should start with non-refreshed node browser.
   expectEquals($('node-browser-refresh-time').textContent, 'Never');
@@ -353,7 +375,7 @@ TEST_F('SyncInternalsWebUITest', 'EventLogTest', function() {
 TEST_F('SyncInternalsWebUITest', 'DumpSyncEventsToText', function() {
   // Dispatch an event.
   var connectionEvent = new Event('onConnectionStatusChange');
-  connectionEvent.details = {'status': 'CONNECTION_OK'}
+  connectionEvent.details = {'status': 'CONNECTION_OK'};
   chrome.sync.events.dispatchEvent(connectionEvent);
 
   // Click the dump-to-text button.