/* 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") } }