summaryrefslogtreecommitdiffstats
path: root/browser/components/places/tests/browser/browser_library_bookmark_pages.js
blob: 474adb956d9bc5cc6f71a34916c2064226b74c66 (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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/
 */

/**
 * Test that the a new bookmark is correctly selected after being created via
 * the bookmark dialog.
 */
"use strict";

const TEST_URIS = ["https://example1.com/", "https://example2.com/"];
let library;

add_setup(async function () {
  await PlacesTestUtils.addVisits(TEST_URIS);

  library = await promiseLibrary("History");

  registerCleanupFunction(async function () {
    await promiseLibraryClosed(library);
    await PlacesUtils.history.clear();
  });
});

add_task(async function test_bookmark_page() {
  library.ContentTree.view.selectPlaceURI(TEST_URIS[0]);

  await withBookmarksDialog(
    true,
    async () => {
      // Open the context menu.
      let placesContext = library.document.getElementById("placesContext");
      let promisePopup = BrowserTestUtils.waitForEvent(
        placesContext,
        "popupshown"
      );
      synthesizeClickOnSelectedTreeCell(library.ContentTree.view, {
        button: 2,
        type: "contextmenu",
      });

      await promisePopup;
      let properties = library.document.getElementById(
        "placesContext_createBookmark"
      );
      placesContext.activateItem(properties);
    },
    async dialogWin => {
      Assert.strictEqual(
        dialogWin.BookmarkPropertiesPanel._itemType,
        0,
        "Should have loaded a bookmark dialog"
      );
      Assert.equal(
        dialogWin.document.getElementById("editBMPanel_locationField").value,
        TEST_URIS[0],
        "Should have opened the dialog with the correct uri to be bookmarked"
      );
    }
  );
});

add_task(async function test_bookmark_pages() {
  library.ContentTree.view.selectAll();

  await withBookmarksDialog(
    true,
    async () => {
      // Open the context menu.
      let placesContext = library.document.getElementById("placesContext");
      let promisePopup = BrowserTestUtils.waitForEvent(
        placesContext,
        "popupshown"
      );
      synthesizeClickOnSelectedTreeCell(library.ContentTree.view, {
        button: 2,
        type: "contextmenu",
      });

      await promisePopup;
      let properties = library.document.getElementById(
        "placesContext_createBookmark"
      );
      placesContext.activateItem(properties);
    },
    async dialogWin => {
      Assert.strictEqual(
        dialogWin.BookmarkPropertiesPanel._itemType,
        1,
        "Should have loaded a create bookmark folder dialog"
      );
      Assert.deepEqual(
        dialogWin.BookmarkPropertiesPanel._URIs.map(uri => uri.uri.spec),
        // The list here is reversed, because that's the order they're shown
        // in the view.
        [TEST_URIS[1], TEST_URIS[0]],
        "Should have got the correct URIs for adding to the folder"
      );
    }
  );
});