Repository navigation
Expand file tree
/
Copy pathClearPrivateDataTests.swift
More file actions
121 lines (94 loc) · 5.43 KB
/
Copy pathClearPrivateDataTests.swift
File metadata and controls
121 lines (94 loc) · 5.43 KB
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import Foundation
import WebKit
import UIKit
class ClearPrivateDataTests: KIFTestCase, UITextFieldDelegate {
private var webRoot: String!
override func setUp() {
webRoot = SimplePageServer.start()
}
override func tearDown() {
BrowserUtils.resetToAboutHome(tester())
}
func clearPrivateData(shouldClear: Bool) {
// clear private data
tester().tapViewWithAccessibilityLabel("Show Tabs")
tester().waitForTappableViewWithAccessibilityLabel("Settings")
tester().tapViewWithAccessibilityLabel("Settings")
tester().waitForViewWithAccessibilityLabel("Clear Private Data")
tester().tapViewWithAccessibilityLabel("Clear Private Data")
tester().waitForViewWithAccessibilityLabel("Clear Everything")
if shouldClear {
tester().tapViewWithAccessibilityLabel("Clear")
} else {
tester().tapViewWithAccessibilityLabel("Cancel")
}
tester().waitForAbsenceOfViewWithAccessibilityLabel("Clear Everything")
tester().tapViewWithAccessibilityLabel("Done")
tester().tapViewWithAccessibilityLabel("home")
}
func visitSites(noOfSites: Int) -> [(title: String, url: String)] {
var urls: [(title: String, url: String)] = []
for pageNo in 1...noOfSites {
// visit 2 sites
tester().tapViewWithAccessibilityIdentifier("url")
let url = "\(webRoot)/numberedPage.html?page=\(pageNo)"
tester().clearTextFromAndThenEnterTextIntoCurrentFirstResponder("\(url)\n")
tester().waitForWebViewElementWithAccessibilityLabel("Page \(pageNo)")
let tuple: (title: String, url: String) = ("Page \(pageNo)", url)
urls.append(tuple)
}
return urls
}
func testClearsTopSitesPanel() {
let urls = visitSites(2)
// assert sites appear in top sites
BrowserUtils.resetToAboutHome(tester())
tester().tapViewWithAccessibilityLabel("Top sites")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[0].title, error: nil), "Expected to have top site panel \(urls[0])")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[1].title, error: nil), "Expected to have top site panel \(urls[1])")
clearPrivateData(true)
XCTAssertFalse(tester().tryFindingViewWithAccessibilityLabel(urls[0].title, error: nil), "Expected to have removed top site panel \(urls[0])")
XCTAssertFalse(tester().tryFindingViewWithAccessibilityLabel(urls[1].title, error: nil), "Expected to have removed top site panel \(urls[1])")
}
func testCancelDoesNotClearTopSitesPanel() {
let urls = visitSites(2)
// assert sites appear in top sites
BrowserUtils.resetToAboutHome(tester())
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[0].title, error: nil), "Expected to have top site panel \(urls[0])")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[1].title, error: nil), "Expected to have top site panel \(urls[1])")
// clear private data
clearPrivateData(false)
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[0].title, error: nil), "Expected to have removed top site panel \(urls[0])")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(urls[1].title, error: nil), "Expected to have removed top site panel \(urls[1])")
}
func testClearsHistoryPanel() {
let urls = visitSites(2)
BrowserUtils.resetToAboutHome(tester())
// check history
tester().tapViewWithAccessibilityLabel("History")
let url1 = "\(urls[0].title), \(urls[0].url)", url2 = "\(urls[1].title), \(urls[1].url)"
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url1, error: nil), "Expected to have history row \(url1)")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url2, error: nil), "Expected to have history row \(url2)")
clearPrivateData(true)
// check history cleared
tester().tapViewWithAccessibilityLabel("History")
XCTAssertFalse(tester().tryFindingViewWithAccessibilityLabel(url1, error: nil), "Expected to have removed history row \(url1)")
XCTAssertFalse(tester().tryFindingViewWithAccessibilityLabel(url2, error: nil), "Expected to have removed history row \(url2)")
}
func testCancelDoesNotClearHistoryPanel() {
let urls = visitSites(2)
BrowserUtils.resetToAboutHome(tester())
// check history
tester().tapViewWithAccessibilityLabel("History")
let url1 = "\(urls[0].title), \(urls[0].url)", url2 = "\(urls[1].title), \(urls[1].url)"
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url1, error: nil), "Expected to have history row \(url1)")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url2, error: nil), "Expected to have history row \(url2)")
clearPrivateData(false)
// check history not cleared
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url1, error: nil), "Expected to not have removed history row \(url1)")
XCTAssertTrue(tester().tryFindingViewWithAccessibilityLabel(url2, error: nil), "Expected to not have removed history row \(url2)")
}
}