-
Notifications
You must be signed in to change notification settings - Fork 27
/
ClipBoardTests.swift
68 lines (59 loc) · 2.05 KB
/
ClipBoardTests.swift
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
/* 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 XCTest
class ClipBoardTests: BaseTestCase {
let url = "www.example.com"
var navigator: Navigator!
var app: XCUIApplication!
override func setUp() {
super.setUp()
app = XCUIApplication()
navigator = createScreenGraph(app).navigator(self)
}
override func tearDown() {
navigator = nil
app = nil
super.tearDown()
}
//Check for test url in the browser
func checkUrl() {
let urlTextField = app.textFields["url"]
waitForValueContains(urlTextField, value: "www.example")
}
//Copy url from the browser
func copyUrl() {
navigator.goto(URLBarOpen)
app.textFields["address"].press(forDuration: 3)
waitforExistence(app.menuItems["Select All"])
app.menuItems["Select All"].tap()
waitforExistence(app.menuItems["Copy"])
app.menuItems["Copy"].tap()
app.typeText("\r")
navigator.nowAt(BrowserTab)
}
//Check copied url is same as in browser
func checkCopiedUrl() {
if let myString = UIPasteboard.general.string {
var value = app.textFields["url"].value as! String
if value.hasPrefix("http") == false {
value = "http://\(value)"
}
XCTAssertNotNil(myString)
XCTAssertEqual(myString, value, "Url matches with the UIPasteboard")
}
}
// This test is disabled in release, but can still run on master
func testClipboard() {
navigator.openURL(urlString: url)
waitUntilPageLoad()
checkUrl()
copyUrl()
checkCopiedUrl()
navigator.createNewTab()
navigator.goto(URLBarOpen)
app.textFields["address"].press(forDuration: 3)
app.menuItems["Paste"].tap()
waitForValueContains(app.textFields["address"], value: "www.example.com")
}
}