This repository has been archived by the owner. It is now read-only.
Permalink
Cannot retrieve contributors at this time
executable file
110 lines (90 sloc)
4.24 KB
| /* 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 | |
| let defaultSearchEngine1 = "Google" | |
| let defaultSearchEngine2 = "Amazon.com" | |
| let customSearchEngine = ["name": "youtube", "url": "http://youtube.com/search?q=%s"] | |
| class SearchSettingsUITests: BaseTestCase { | |
| func testDefaultSearchEngine() { | |
| navigator.goto(SearchSettings) | |
| // Check the default browser | |
| let defaultSearchEngine = app.tables.cells.element(boundBy: 0) | |
| waitforExistence(app.tables.cells.staticTexts[defaultSearchEngine1]) | |
| // Change to another browser and check it is set as default | |
| defaultSearchEngine.tap() | |
| let listOfEngines = app.tables | |
| listOfEngines.staticTexts[defaultSearchEngine2].tap() | |
| waitforExistence(app.tables.cells.staticTexts[defaultSearchEngine2]) | |
| } | |
| func testCustomSearchEngineIsEditable() { | |
| navigator.goto(SearchSettings) | |
| // Add a custom search engine | |
| addCustomSearchEngine() | |
| // Check that the custom search appears on the list | |
| waitforExistence(app.tables.cells.staticTexts[customSearchEngine["name"]!]) | |
| // Check that it can be edited | |
| XCTAssertTrue(app.buttons["Edit"].isEnabled) | |
| app.buttons["Edit"].tap() | |
| waitforExistence(app.tables.buttons["Delete \(customSearchEngine["name"]!)"]) | |
| } | |
| private func addCustomSearchEngine() { | |
| waitforExistence(app.tables.cells["customEngineViewButton"]) | |
| app.tables.cells["customEngineViewButton"].tap() | |
| waitforExistence(app.tables.cells.staticTexts["Search Engine"]) | |
| app.tables.cells.textViews["customEngineTitle"].tap() | |
| app.tables.cells.textViews["customEngineTitle"].typeText(customSearchEngine["name"]!) | |
| app.tables.cells.textViews["customEngineUrl"].tap() | |
| app.tables.cells.textViews["customEngineUrl"].typeText(customSearchEngine["url"]!) | |
| app.buttons["Save"].tap() | |
| // Check that custom engine has been added successfully | |
| waitforExistence(app.tables.cells.staticTexts[customSearchEngine["name"]!]) | |
| } | |
| func testCustomSearchEngineAsDefaultIsNotEditable() { | |
| navigator.goto(SearchSettings) | |
| // Edit is disabled | |
| XCTAssertFalse(app.buttons["Edit"].isEnabled) | |
| addCustomSearchEngine() | |
| // Edit is enabled | |
| XCTAssertTrue(app.buttons["Edit"].isEnabled) | |
| // Select the custom engine as the default one | |
| let defaultSearchEngine = app.tables.cells.element(boundBy: 0) | |
| defaultSearchEngine.tap() | |
| let listOfEngines = app.tables | |
| listOfEngines.staticTexts[customSearchEngine["name"]!].tap() | |
| // Edit is disabled | |
| XCTAssertFalse(app.buttons["Edit"].isEnabled) | |
| } | |
| func testNavigateToSearchPickerTurnsOffEditing() { | |
| navigator.goto(SearchSettings) | |
| // Edit is disabled | |
| XCTAssertFalse(app.buttons["Edit"].isEnabled) | |
| addCustomSearchEngine() | |
| // Edit is enabled | |
| XCTAssertTrue(app.buttons["Edit"].isEnabled) | |
| app.buttons["Edit"].tap() | |
| XCTAssertTrue(app.buttons["Done"].isEnabled) | |
| // Navigate to the search engine picker and back | |
| let defaultSearchEngine = app.tables.cells.element(boundBy: 0) | |
| defaultSearchEngine.tap() | |
| app.buttons["Cancel"].tap() | |
| // Check to see we're not in editing state, edit is enable and done does not appear | |
| XCTAssertTrue(app.buttons["Edit"].isEnabled) | |
| waitforNoExistence(app.buttons["Done"]) | |
| } | |
| func testDeletingLastCustomEngineExitsEditing() { | |
| navigator.goto(SearchSettings) | |
| // Edit is disabled | |
| XCTAssertFalse(app.buttons["Edit"].isEnabled) | |
| // Add a custom search engine | |
| addCustomSearchEngine() | |
| XCTAssertTrue(app.buttons["Edit"].isEnabled) | |
| app.buttons["Edit"].tap() | |
| XCTAssertTrue(app.buttons["Done"].isEnabled) | |
| // Remove the custom search engine and check that edit is disabled | |
| let tablesQuery = app.tables | |
| tablesQuery.buttons["Delete \(customSearchEngine["name"]!)"].tap() | |
| tablesQuery.buttons["Delete"].tap() | |
| XCTAssertFalse(app.buttons["Edit"].isEnabled) | |
| } | |
| } |