Index: chrome/test/data/webui/md_history/history_metrics_test.js |
diff --git a/chrome/test/data/webui/md_history/history_metrics_test.js b/chrome/test/data/webui/md_history/history_metrics_test.js |
index ce06568a5717f27b6b2a787a1b3dd86da0c87e44..5cec3d39e4fabeeb6c21bf3ec75cf28290aa0ec0 100644 |
--- a/chrome/test/data/webui/md_history/history_metrics_test.js |
+++ b/chrome/test/data/webui/md_history/history_metrics_test.js |
@@ -7,14 +7,21 @@ cr.define('md_history.history_metrics_test', function() { |
* @constructor |
* @extends {md_history.BrowserService} |
*/ |
- var TestMetricsBrowserService = function() { this.histogramMap = {}; }; |
+ var TestMetricsBrowserService = function() { |
+ this.histogramMap = {}; |
+ this.actionMap = {}; |
+ }; |
function registerTests() { |
suite('Metrics', function() { |
var service; |
var app; |
+ var histogramMap; |
+ var actionMap; |
suiteSetup(function() { |
+ disableLinkClicks(); |
+ |
TestMetricsBrowserService.prototype = { |
__proto__: md_history.BrowserService.prototype, |
@@ -29,6 +36,19 @@ cr.define('md_history.history_metrics_test', function() { |
this.histogramMap[histogram][value] = 0; |
this.histogramMap[histogram][value]++; |
+ }, |
+ |
+ /** @override */ |
+ recordAction: function(action) { |
+ if (!(action in this.actionMap)) |
+ this.actionMap[action] = 0 |
+ |
+ this.actionMap[action]++; |
+ }, |
+ |
+ /** @override */ |
+ deleteItems: function() { |
+ return flush(); |
} |
}; |
}); |
@@ -37,6 +57,9 @@ cr.define('md_history.history_metrics_test', function() { |
md_history.BrowserService.instance_ = new TestMetricsBrowserService(); |
service = md_history.BrowserService.getInstance(); |
+ actionMap = service.actionMap; |
+ histogramMap = service.histogramMap; |
+ |
app = replaceApp(); |
return flush(); |
}); |
@@ -44,7 +67,7 @@ cr.define('md_history.history_metrics_test', function() { |
test('History.HistoryView', function() { |
app.grouped_ = true; |
- var histogram = service.histogramMap['History.HistoryView']; |
+ var histogram = histogramMap['History.HistoryView']; |
assertEquals(1, histogram[HistoryViewHistogram.HISTORY]); |
app.selectedPage_ = 'syncedTabs'; |
@@ -60,6 +83,205 @@ cr.define('md_history.history_metrics_test', function() { |
assertEquals(1, histogram[HistoryViewHistogram.GROUPED_MONTH]); |
}); |
}); |
+ |
+ test('history-list', function() { |
tsergeant
2016/08/22 00:23:40
Having these here is okay for now, but we should b
calamity
2016/08/23 04:52:25
My intuition is that there would be a larger maint
|
+ var historyEntry = |
+ createHistoryEntry('2015-01-01', 'http://www.google.com'); |
+ historyEntry.starred = true; |
+ app.historyResult(createHistoryInfo(), [ |
+ createHistoryEntry('2015-01-01', 'http://www.example.com'), |
+ historyEntry |
+ ]); |
+ |
+ return flush().then(() => { |
+ var items = polymerSelectAll( |
+ app.$.history.$['infinite-list'], 'history-item'); |
+ MockInteractions.tap(items[1].$$('#bookmark-star')); |
+ assertEquals(1, actionMap['BookmarkStarClicked']); |
+ MockInteractions.tap(items[1].$.title); |
+ assertEquals(1, actionMap['EntryLinkClick']); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.ClickPosition'][1]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.ClickPositionSubset'][1]); |
+ |
+ app.set('queryState_.searchTerm', 'goog'); |
+ assertEquals(1, actionMap['Search']); |
+ app.set('queryState_.incremental', true); |
+ app.historyResult(createHistoryInfo('goog'), [ |
+ createHistoryEntry('2015-01-01', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-01', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-01', 'http://www.google.com') |
+ ]); |
+ return flush(); |
+ }).then(() => { |
+ items = polymerSelectAll( |
+ app.$.history.$['infinite-list'], 'history-item'); |
+ MockInteractions.tap(items[0].$.title); |
+ assertEquals(1, actionMap['SearchResultClick']); |
+ assertEquals(1, histogramMap['HistoryPage.ClickPosition'][0]); |
+ assertEquals(1, histogramMap['HistoryPage.ClickPositionSubset'][0]); |
+ MockInteractions.tap(items[0].$.checkbox); |
+ MockInteractions.tap(items[4].$.checkbox); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.toolbar.$$('#delete-button')); |
+ assertEquals(1, actionMap['RemoveSelected']); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.history.$$('.cancel-button')); |
+ assertEquals(1, actionMap['CancelRemoveSelected']); |
+ MockInteractions.tap(app.$.toolbar.$$('#delete-button')); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.history.$$('.action-button')); |
+ assertEquals(1, actionMap['ConfirmRemoveSelected']); |
+ return flush(); |
+ }).then(() => { |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPosition'][0]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPositionSubset'][0]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPosition'][4]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPositionSubset'][4]); |
+ |
+ items = polymerSelectAll( |
+ app.$.history.$['infinite-list'], 'history-item'); |
+ MockInteractions.tap(items[0].$.checkbox); |
+ MockInteractions.tap(app.$.toolbar.$$('#delete-button')); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.history.$$('.action-button')); |
+ assertEquals(2, actionMap['ConfirmRemoveSelected']); |
+ return flush(); |
+ }).then(() => { |
+ assertEquals( |
+ 2, histogramMap['HistoryPage.RemoveEntryPosition'][0]); |
+ assertEquals( |
+ 2, histogramMap['HistoryPage.RemoveEntryPositionSubset'][0]); |
+ }); |
+ }); |
+ |
+ test('grouped-list', function() { |
+ app.grouped_ = true; |
+ var groupedList; |
+ var dropdowns; |
+ return flush().then(() => { |
+ groupedList = app.$.history.$$('#grouped-list'); |
+ app.set('queryState_.range', HistoryRange.WEEK); |
+ app.historyResult(createHistoryInfo(), [ |
+ createHistoryEntry('2015-01-03', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-03', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-03', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-01', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-01', 'http://www.google.com'), |
+ createHistoryEntry('2015-01-01', 'http://www.badssl.com'), |
+ ]); |
+ |
+ return waitForEvent(groupedList, 'dom-change', function() { |
+ return polymerSelectAll( |
+ groupedList, '.dropdown-indicator').length == 3; |
+ }); |
+ }).then(function() { |
+ dropdowns = polymerSelectAll(groupedList, '.dropdown-indicator'); |
+ // Open the first and last domains. |
+ MockInteractions.tap(dropdowns[0]); |
+ MockInteractions.tap(dropdowns[2]); |
+ return flush(); |
+ }).then(function() { |
+ var items = polymerSelectAll(groupedList, 'history-item'); |
+ // Select the 2nd item in the first domain and the only item in the |
+ // last domain. |
+ MockInteractions.tap(items[1].$.checkbox); |
+ MockInteractions.tap(items[3].$.checkbox); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.toolbar.$$('#delete-button')); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.history.$$('.action-button')); |
+ return flush(); |
+ }).then(() => { |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPosition'][1]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPositionSubset'][1]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPosition'][5]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPositionSubset'][5]); |
+ }).then(function() { |
+ // Open the middle domain. |
+ MockInteractions.tap(dropdowns[1]); |
+ return flush(); |
+ }).then(function() { |
+ var items = polymerSelectAll(groupedList, 'history-item'); |
+ // Select the first item in the middle domain. |
+ MockInteractions.tap(items[2].$.checkbox); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.toolbar.$$('#delete-button')); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$.history.$$('.action-button')); |
+ return flush(); |
+ }).then(() => { |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPosition'][2]); |
+ assertEquals( |
+ 1, histogramMap['HistoryPage.RemoveEntryPositionSubset'][2]); |
+ }); |
+ }); |
+ |
+ test('synced-device-manager', function() { |
+ app.selectedPage_ = 'syncedTabs'; |
+ var histogram; |
+ return flush().then(() => { |
+ histogram = |
+ histogramMap[SYNCED_TABS_HISTOGRAM_NAME]; |
+ assertEquals(1, histogram[SyncedTabsHistogram.INITIALIZED]); |
+ |
+ var sessionList = [ |
+ createSession( |
+ 'Nexus 5', |
+ [createWindow(['http://www.google.com', 'http://example.com'])] |
+ ), |
+ createSession( |
+ 'Nexus 6', |
+ [ |
+ createWindow(['http://test.com']), |
+ createWindow(['http://www.gmail.com', 'http://badssl.com']) |
+ ] |
+ ), |
+ ]; |
+ setForeignSessions(sessionList, true); |
+ return flush(); |
+ }).then(() => { |
+ assertEquals(1, histogram[SyncedTabsHistogram.HAS_FOREIGN_DATA]); |
+ return flush(); |
+ }).then(() => { |
+ cards = polymerSelectAll( |
+ app.$$('#synced-devices'), 'history-synced-device-card'); |
+ MockInteractions.tap(cards[0].$['card-heading']); |
+ assertEquals(1, histogram[SyncedTabsHistogram.COLLAPSE_SESSION]); |
+ MockInteractions.tap(cards[0].$['card-heading']); |
+ assertEquals(1, histogram[SyncedTabsHistogram.EXPAND_SESSION]); |
+ MockInteractions.tap(polymerSelectAll(cards[0], '.website-title')[0]); |
+ assertEquals(1, histogram[SyncedTabsHistogram.LINK_CLICKED]); |
+ |
+ MockInteractions.tap(cards[0].$['menu-button']); |
+ return flush(); |
+ }).then(() => { |
+ MockInteractions.tap(app.$$('#synced-devices').$$('#menuOpenButton')); |
+ assertEquals(1, histogram[SyncedTabsHistogram.OPEN_ALL]); |
+ |
+ MockInteractions.tap( |
+ app.$$('#synced-devices').$$('#menuDeleteButton')); |
+ assertEquals(1, histogram[SyncedTabsHistogram.HIDE_FOR_NOW]); |
+ }); |
+ }); |
}); |
} |
return { |