File: browser_newtab_update.js

package info (click to toggle)
iceweasel 31.6.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 1,368,576 kB
  • sloc: cpp: 3,692,968; ansic: 1,797,194; python: 193,401; java: 180,622; asm: 133,557; xml: 89,288; sh: 71,748; perl: 22,087; makefile: 21,687; objc: 4,014; yacc: 1,995; pascal: 1,292; lex: 950; exp: 449; lisp: 228; awk: 211; php: 113; sed: 43; csh: 31; ada: 16; ruby: 3
file content (53 lines) | stat: -rw-r--r-- 1,799 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

/**
 * Checks that newtab is updated as its links change.
 */

function runTests() {
  if (NewTabUtils.allPages.updateScheduledForHiddenPages) {
    // Wait for dynamic updates triggered by the previous test to finish.
    yield whenPagesUpdated(null, true);
  }

  // First, start with an empty page.  setLinks will trigger a hidden page
  // update because it calls clearHistory.  We need to wait for that update to
  // happen so that the next time we wait for a page update below, we catch the
  // right update and not the one triggered by setLinks.
  //
  // Why this weird way of yielding?  First, these two functions don't return
  // promises, they call TestRunner.next when done.  Second, the point at which
  // setLinks is done is independent of when the page update will happen, so
  // calling whenPagesUpdated cannot wait until that time.
  setLinks([]);
  whenPagesUpdated(null, true);
  yield null;
  yield null;

  // Strategy: Add some visits, open a new page, check the grid, repeat.
  fillHistory([link(1)]);
  yield whenPagesUpdated(null, true);
  yield addNewTabPageTab();
  checkGrid("1,,,,,,,,");

  fillHistory([link(2)]);
  yield whenPagesUpdated(null, true);
  yield addNewTabPageTab();
  checkGrid("2,1,,,,,,,");

  fillHistory([link(1)]);
  yield whenPagesUpdated(null, true);
  yield addNewTabPageTab();
  checkGrid("1,2,,,,,,,");

  // Wait for fillHistory to add all links before waiting for an update
  yield fillHistory([link(2), link(3), link(4)], TestRunner.next);
  yield whenPagesUpdated(null, true);
  yield addNewTabPageTab();
  checkGrid("2,1,3,4,,,,,");
}

function link(id) {
  return { url: "http://example.com/#" + id, title: "site#" + id };
}