Roll src/third_party/WebKit d9c6159:8139f33 (svn 201974:201975)
[chromium-blink-merge.git] / chrome / test / data / webui / most_visited_page_test.js
blobc85778f2de4f72105a3b5592de5e28b69ffece44
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 function pageObjectEquals(a, b) {
6   return a.url == b.url && a.title == b.title && a.pinned == b.pinned;
9 function pageObjectArrayEquals(a, b) {
10   if (a.length != b.length)
11     return false;
13   for (var i = 0; i < a.length; i++) {
14     if (!a && !b)
15       continue;
17     if (!pageObjectEquals(a[i], b[i]))
18       return false;
19   }
21   return true;
24 function refreshDataBasic() {
25   // Tests that we toss out pages that don't appear in the new data.
26   var oldData = [{url: 'foo'}];
27   var newData = [{url: 'bar'}];
28   var mergedData = ntp.refreshData(oldData, newData);
29   assertTrue(pageObjectArrayEquals(mergedData, newData));
32 function refreshDataOrdering() {
33   // Tests that the order of pages (based on URL) in the current list is
34   // preserved, but the other page data (like title) is copied from newData.
35   var oldData = [
36     {url: 'foo', title: 'foo (1)'},
37     {url: 'bar', title: 'bar (1)'}];
39   var newData = [
40     {url: 'bar', title: 'bar (2)'},
41     {url: 'foo', title: 'foo (2)'}];
43   var expectedData = [
44     {url: 'foo', title: 'foo (2)'},
45     {url: 'bar', title: 'bar (2)'}];
47   var mergedData = ntp.refreshData(oldData, newData);
48   assertTrue(pageObjectArrayEquals(mergedData, expectedData));
51 function refreshDataPinning() {
52   // Tests that the 'pinned' attribute is always respected.
53   var oldData = [
54     {url: 'foo', title: 'foo (1)'},
55     {url: 'bar', title: 'bar (1)'}];
57   var newData = [
58     {url: 'bar', title: 'bar (2)', pinned: true},
59     {url: 'foo', title: 'foo (2)'}];
61   var mergedData = ntp.refreshData(oldData, newData);
62   assertTrue(pageObjectArrayEquals(mergedData, newData));
64   // Tests we don't choke on empty data before a pinned entry.
65   oldData = [{url: 'foo', title: 'foo (1)'}];
66   newData = [{}, {url: 'foo', title: 'foo (2)', pinned: true}];
68   mergedData = ntp.refreshData(oldData, newData);
69   assertTrue(pageObjectArrayEquals(mergedData, newData));