Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5746)

Unified Diff: chrome/test/data/webui/md_history/history_grouped_list_test.js

Issue 1993613002: [MD History] Implement grouped history UI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@privatize
Patch Set: address comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/webui/md_history_ui.cc ('k') | chrome/test/data/webui/md_history/history_list_test.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/webui/md_history/history_grouped_list_test.js
diff --git a/chrome/test/data/webui/md_history/history_grouped_list_test.js b/chrome/test/data/webui/md_history/history_grouped_list_test.js
new file mode 100644
index 0000000000000000000000000000000000000000..9491a067f702172cc99fb9469267a82a3c699fcf
--- /dev/null
+++ b/chrome/test/data/webui/md_history/history_grouped_list_test.js
@@ -0,0 +1,150 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+cr.define('md_history.history_grouped_list_test', function() {
+ function registerTests() {
+ suite('history-grouped-list', function() {
+ var app;
+ var toolbar;
+ var groupedList;
+ var SIMPLE_RESULTS;
+ var PER_DAY_RESULTS;
+ var PER_MONTH_RESULTS;
+ suiteSetup(function(done) {
+ app = $('history-app');
+ app.grouped_ = true;
+
+ toolbar = app.$['toolbar'];
+
+ SIMPLE_RESULTS = [
+ createHistoryEntry('2016-03-16', 'https://www.google.com/'),
+ createHistoryEntry('2016-03-16', 'https://en.wikipedia.org/DankMeme'),
+ createHistoryEntry('2016-03-16 10:00', 'https://www.example.com'),
+ createHistoryEntry('2016-03-16',
+ 'https://www.google.com/?q=yoloswaggins'),
+ ];
+
+ PER_DAY_RESULTS = [
+ createHistoryEntry('2016-03-13', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-13', 'https://www.youtube.com'),
+ createHistoryEntry('2016-03-13', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-11', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-10', 'https://en.wikipedia.org')
+ ];
+
+ PER_MONTH_RESULTS = [
+ createHistoryEntry('2016-03-13', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-13', 'https://www.youtube.com'),
+ createHistoryEntry('2016-03-13', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-1', 'https://en.wikipedia.org'),
+ createHistoryEntry('2016-03-1', 'https://en.wikipedia.org')
+ ];
+ flush(function() {
+ groupedList = app.$$('#history-grouped-list');
+ done();
+ });
+ });
+
+ test('grouped ui is shown', function(done) {
+ assertTrue(!!toolbar.$$('#grouped-buttons-container'));
+
+ // History list is shown at first.
+ assertEquals('history-list', app.$['content'].selected);
+
+ // Switching to week or month causes grouped history list to be shown.
+ app.set('queryState_.range', HistoryRange.WEEK);
+ assertEquals('history-grouped-list', app.$['content'].selected);
+
+ app.set('queryState_.range', HistoryRange.ALL_TIME);
+ assertEquals('history-list', app.$['content'].selected);
+
+ app.set('queryState_.range', HistoryRange.MONTH);
+ assertEquals('history-grouped-list', app.$['content'].selected);
+ done();
+ });
+
+ test('items grouped by domain', function(done) {
+ app.set('queryState_.range', HistoryRange.WEEK);
+ app.historyResult(createHistoryInfo(), SIMPLE_RESULTS);
+ flush(function() {
+ var data = groupedList.groupedHistoryData_;
+ // 1 card for the day with 3 domains.
+ assertEquals(1, data.length);
+ assertEquals(3, data[0].domains.length);
+
+ // Most visits at the top.
+ assertEquals(2, data[0].domains[0].visits.length);
+ assertEquals(1, data[0].domains[1].visits.length);
+ assertEquals(1, data[0].domains[2].visits.length);
+ done();
+ });
+ });
+
+ test('items grouped by day in week view', function(done) {
+ app.set('queryState_.range', HistoryRange.WEEK);
+ app.historyResult(createHistoryInfo(), PER_DAY_RESULTS);
+ flush(function() {
+ var data = groupedList.groupedHistoryData_;
+
+ // 3 cards.
+ assertEquals(3, data.length);
+
+ assertEquals(2, data[0].domains.length);
+ assertEquals(2, data[0].domains[0].visits.length);
+ assertEquals(1, data[0].domains[1].visits.length);
+
+ assertEquals(1, data[1].domains.length);
+ assertEquals(1, data[1].domains[0].visits.length);
+
+ assertEquals(1, data[2].domains.length);
+ assertEquals(1, data[2].domains[0].visits.length);
+ done();
+ });
+ });
+
+ test('items grouped by month in month view', function(done) {
+ app.set('queryState_.range', HistoryRange.MONTH);
+ app.historyResult(createHistoryInfo(), PER_MONTH_RESULTS);
+ flush(function() {
+ var data = groupedList.groupedHistoryData_;
+
+ // 1 card.
+ assertEquals(1, data.length);
+
+ assertEquals(2, data[0].domains.length);
+ assertEquals(4, data[0].domains[0].visits.length);
+ assertEquals(1, data[0].domains[1].visits.length);
+
+ done();
+ });
+ });
+
+ test('items rendered when expanded', function(done) {
+ app.set('queryState_.range', HistoryRange.WEEK);
+ app.historyResult(createHistoryInfo(), SIMPLE_RESULTS);
+ flush(function() {
+ var getItems = function() {
+ return Polymer.dom(groupedList.root)
+ .querySelectorAll('history-item');
+ };
+
+ assertEquals(0, getItems().length);
+ MockInteractions.tap(groupedList.$$('.domain-heading'));
+ flush(function() {
+ assertEquals(2, getItems().length);
+ done();
+ });
+ });
+ });
+
+ teardown(function() {
+ app.set('queryState_.results', []);
+ app.set('queryState_.searchedTerm', '');
+ });
+ });
+ }
+ return {
+ registerTests: registerTests
+ };
+});
« no previous file with comments | « chrome/browser/ui/webui/md_history_ui.cc ('k') | chrome/test/data/webui/md_history/history_list_test.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698