summaryrefslogtreecommitdiffstats
path: root/browser/components/places/tests/chrome/test_selectItems_on_nested_tree.xhtml
blob: 6dc2d3304182b752f30485197320fb039ecda3bf (plain)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?xml version="1.0"?>

<!--
    Any copyright is dedicated to the Public Domain.
    http://creativecommons.org/licenses/publicdomain/
   -->

<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
                 type="text/css"?>

<?xml-stylesheet href="chrome://browser/content/places/places.css"?>
<?xml-stylesheet href="chrome://browser/skin/places/tree-icons.css"?>

<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        title="549192:  History view not updated after deleting entry"
        onload="runTest();">

  <script type="application/javascript"
          src="chrome://browser/content/places/places-tree.js"/>
  <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
  <script type="application/javascript" src="head.js" />

  <body xmlns="http://www.w3.org/1999/xhtml" />

  <tree id="tree"
        is="places-tree"
        flex="1">
    <treecols>
      <treecol label="Title" id="title" anonid="title" primary="true" style="order: 1;" flex="1"/>
    </treecols>
    <treechildren flex="1"/>
  </tree>

  <script type="application/javascript"><![CDATA[
    /**
     * Ensure that selectItems doesn't recurse infinitely in nested trees.
     */

    function runTest() {
      SimpleTest.waitForExplicitFinish();

      (async function() {
        await PlacesUtils.bookmarks.insert({
          parentGuid: PlacesUtils.bookmarks.unfiledGuid,
          index: PlacesUtils.bookmarks.DEFAULT_INDEX,
          type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
          url: `place:parent=${PlacesUtils.bookmarks.unfiledGuid}`,
          title: "shortcut"
        });

        await PlacesUtils.bookmarks.insert({
          parentGuid: PlacesUtils.bookmarks.unfiledGuid,
          index: PlacesUtils.bookmarks.DEFAULT_INDEX,
          type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
          url: `place:parent=${PlacesUtils.bookmarks.unfiledGuid}&maxResults=10`,
          title: "query"
        });

        let folder = await PlacesUtils.bookmarks.insert({
          parentGuid: PlacesUtils.bookmarks.unfiledGuid,
          index: PlacesUtils.bookmarks.DEFAULT_INDEX,
          type: PlacesUtils.bookmarks.TYPE_FOLDER,
          title: "folder"
        });

        let bm = await PlacesUtils.bookmarks.insert({
          parentGuid: folder.guid,
          index: PlacesUtils.bookmarks.DEFAULT_INDEX,
          type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
          url: "http://www.mozilla.org/",
          title: "bookmark"
        });

        // Setup the places tree contents.
        let tree = document.getElementById("tree");
        tree.place = `place:parent=${PlacesUtils.bookmarks.unfiledGuid}`;

        // Select the last bookmark.
        tree.selectItems([bm.guid]);
        is (tree.selectedNode.bookmarkGuid, bm.guid, "The right node was selected");
      })().then(SimpleTest.finish);
    }
  ]]></script>
</window>