Skip to content

Commit 1a1718e

Browse files
authored
Merge pull request #131 from mozilla/sl/cookies-not-saved-private-browsing
Cookies are not Saved Private Browsing
2 parents 2479ebb + dc0accb commit 1a1718e

File tree

6 files changed

+81
-6
lines changed

6 files changed

+81
-6
lines changed

modules/data/about_prefs.components.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,18 @@
240240
"groups": []
241241
},
242242

243+
"cookies-manage-data": {
244+
"selectorData": "siteDataSettings",
245+
"strategy": "id",
246+
"groups": []
247+
},
248+
249+
"cookies-manage-data-sitelist": {
250+
"selectorData": "sitesList",
251+
"strategy": "id",
252+
"groups": []
253+
},
254+
243255
"tracking-checkbox": {
244256
"selectorData": "contentBlockingTrackingProtectionCheckbox",
245257
"strategy": "id",

modules/data/generic_page.components.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,17 @@
2121
"selectorData": "mw-mmv-image",
2222
"strategy": "class",
2323
"groups": []
24+
},
25+
26+
"wiki-search-bar": {
27+
"selectorData": "searchInput",
28+
"strategy": "id",
29+
"groups": []
30+
},
31+
32+
"wiki-search-button": {
33+
"selectorData": "button[class='cdx-button cdx-button--action-default cdx-button--weight-normal cdx-button--size-medium cdx-button--framed cdx-search-input__end-button']",
34+
"strategy": "css",
35+
"groups": []
2436
}
2537
}

modules/page_base.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,19 @@ def get_all_children(
541541
children = element.find_elements(By.XPATH, "./*")
542542
return children
543543

544+
def wait_for_no_children(
545+
self, parent: Union[str, tuple, WebElement], labels=[]
546+
) -> Page:
547+
"""
548+
Waits for 0 children under the given parent, the wait is instant (note, this changes the driver implicit wait and changes it back)
549+
"""
550+
driver_wait = self.driver.timeouts.implicit_wait
551+
self.driver.implicitly_wait(0)
552+
try:
553+
assert len(self.get_all_children(self.fetch(parent, labels))) == 0
554+
finally:
555+
self.driver.implicitly_wait(driver_wait)
556+
544557
def wait_for_num_tabs(self, num_tabs: int) -> Page:
545558
"""
546559
Waits for the driver.window_handles to be updated accordingly with the number of tabs requested
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from selenium.webdriver import Firefox
2+
3+
from modules.browser_object import Navigation, PanelUi
4+
from modules.page_object import AboutPrefs, GenericPage
5+
from modules.util import BrowserActions
6+
7+
8+
def test_cookies_not_saved_private_browsing(driver: Firefox):
9+
"""
10+
C101677: ensure that cookies are not saved after using private browsing
11+
"""
12+
# instantiate objs
13+
about_prefs = AboutPrefs(driver, category="privacy")
14+
panel_ui = PanelUi(driver).open()
15+
nav = Navigation(driver)
16+
wiki_page = GenericPage(
17+
driver, url="https://ro.wikipedia.org/wiki/Pagina_principal%C4%83"
18+
)
19+
ba = BrowserActions(driver)
20+
21+
# open new private window
22+
panel_ui.open_private_window()
23+
nav.switch_to_new_window()
24+
25+
# open the wiki page and perform a search
26+
wiki_page.open()
27+
wiki_search_bar = wiki_page.get_element("wiki-search-bar")
28+
wiki_search_bar.send_keys("hello")
29+
wiki_page.get_element("wiki-search-button").click()
30+
wiki_page.wait_for_page_to_load()
31+
32+
# close the page and switch to first tab
33+
driver.close()
34+
driver.switch_to.window(driver.window_handles[0])
35+
about_prefs.open()
36+
37+
# get the cookies
38+
about_prefs.get_element("cookies-manage-data").click()
39+
iframe = about_prefs.get_iframe()
40+
ba.switch_to_iframe_context(iframe)
41+
42+
# wait for no children listed in the cookies menu
43+
about_prefs.wait_for_no_children("cookies-manage-data-sitelist")

tests/security_and_privacy/test_open_link_in_private_window.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
1-
import logging
2-
3-
import pytest
41
from selenium.webdriver import Firefox
52

63
from modules.browser_object import ContextMenu, Navigation
7-
from modules.page_object import ExamplePage, GenericPage
4+
from modules.page_object import ExamplePage
85

96

107
def test_open_link_in_private_window(driver: Firefox):

tests/tabs/test_pin_tab.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import logging
2-
31
from selenium.webdriver import Firefox
42

53
from modules.browser_object import TabBar, TabContextMenu

0 commit comments

Comments
 (0)