mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-23 00:47:31 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
149
mobile/ios/UITests/HistoryTests.swift
Normal file
149
mobile/ios/UITests/HistoryTests.swift
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
/* 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 EarlGrey
|
||||
|
||||
class HistoryTests: KIFTestCase {
|
||||
fileprivate var webRoot: String!
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
webRoot = SimplePageServer.start()
|
||||
BrowserUtils.dismissFirstRunUI()
|
||||
}
|
||||
|
||||
func addHistoryItemPage(_ pageNo: Int) -> String {
|
||||
// Load a page
|
||||
let url = "\(webRoot!)/numberedPage.html?page=\(pageNo)"
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("url")).perform(grey_tap())
|
||||
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("address")).perform(grey_replaceText(url))
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("address")).perform(grey_typeText("\n"))
|
||||
tester().waitForWebViewElementWithAccessibilityLabel("Page \(pageNo)")
|
||||
return url
|
||||
}
|
||||
|
||||
func addHistoryItems(_ noOfItemsToAdd: Int) -> [String] {
|
||||
var urls = [String]()
|
||||
for index in 1...noOfItemsToAdd {
|
||||
urls.append(addHistoryItemPage(index))
|
||||
}
|
||||
return urls
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests for listed history visits
|
||||
*/
|
||||
func testAddHistoryUI() {
|
||||
_ = addHistoryItems(2)
|
||||
|
||||
// Check that both appear in the history home panel
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("url")).perform(grey_tap())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("History")).perform(grey_tap())
|
||||
|
||||
// Wait until the dialog shows up
|
||||
let listAppeared = GREYCondition(name: "Wait the history list to appear", block: { _ in
|
||||
var errorOrNil: NSError?
|
||||
let matcher = grey_allOf([grey_accessibilityLabel("Page 2"),
|
||||
grey_sufficientlyVisible()])
|
||||
EarlGrey.select(elementWithMatcher: matcher)
|
||||
.inRoot(grey_accessibilityID("History List"))
|
||||
.assert(grey_notNil(), error: &errorOrNil)
|
||||
return errorOrNil == nil
|
||||
}).wait(withTimeout: 20)
|
||||
GREYAssertTrue(listAppeared, reason: "Failed to display history")
|
||||
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("Page 2"))
|
||||
.inRoot(grey_accessibilityID("History List"))
|
||||
.assert(grey_sufficientlyVisible())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("Page 1"))
|
||||
.inRoot(grey_accessibilityID("History List"))
|
||||
.assert(grey_sufficientlyVisible())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("\(webRoot!)/numberedPage.html?page=2"))
|
||||
.inRoot(grey_accessibilityID("History List"))
|
||||
.assert(grey_sufficientlyVisible())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("\(webRoot!)/numberedPage.html?page=1"))
|
||||
.inRoot(grey_accessibilityID("History List"))
|
||||
.assert(grey_sufficientlyVisible())
|
||||
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("goBack")).perform(grey_tap())
|
||||
}
|
||||
|
||||
func testDeleteHistoryItemFromListWith2Items() {
|
||||
// add 2 history items
|
||||
let urls = addHistoryItems(2)
|
||||
|
||||
// Check that both appear in the history home panel
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("url")).perform(grey_tap())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("History")).perform(grey_tap())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel(urls[0]))
|
||||
.perform(grey_longPress())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("Delete from History"))
|
||||
.inRoot(grey_kindOfClass(NSClassFromString("UITableViewCellContentView")!))
|
||||
.perform(grey_tap())
|
||||
|
||||
// The second history entry still exists
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel(urls[1]))
|
||||
.inRoot(grey_kindOfClass(NSClassFromString("UITableViewCellContentView")!))
|
||||
.assert(grey_notNil())
|
||||
|
||||
// check page 1 does not exist
|
||||
let historyRemoved = GREYCondition(name: "Check entry is removed", block: { _ in
|
||||
var errorOrNil: NSError?
|
||||
let matcher = grey_allOf([grey_accessibilityLabel(urls[0]),
|
||||
grey_sufficientlyVisible()])
|
||||
EarlGrey.select(elementWithMatcher: matcher).assert(grey_notNil(), error: &errorOrNil)
|
||||
let success = errorOrNil != nil
|
||||
return success
|
||||
}).wait(withTimeout: 5)
|
||||
GREYAssertTrue(historyRemoved, reason: "Failed to remove history")
|
||||
|
||||
EarlGrey.select(elementWithMatcher:grey_accessibilityID("goBack")).perform(grey_tap())
|
||||
}
|
||||
|
||||
func testDeleteHistoryItemFromListWithMoreThan100Items() {
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("url")).perform(grey_tap())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("Top sites")).perform(grey_tap())
|
||||
|
||||
for pageNo in 1...102 {
|
||||
BrowserUtils.addHistoryEntry("Page \(pageNo)", url: URL(string: "\(webRoot!)/numberedPage.html?page=\(pageNo)")!)
|
||||
}
|
||||
let urlToDelete = "\(webRoot!)/numberedPage.html?page=\(102)"
|
||||
let oldestUrl = "\(webRoot!)/numberedPage.html?page=\(101)"
|
||||
|
||||
EarlGrey.select(elementWithMatcher:grey_accessibilityLabel("History"))
|
||||
.perform(grey_tap())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel("Page 102")).inRoot(grey_kindOfClass(NSClassFromString("UITableView")!)).perform(grey_swipeSlowInDirectionWithStartPoint(.left, 0.4, 0.4))
|
||||
EarlGrey.select(elementWithMatcher:grey_accessibilityLabel("Delete"))
|
||||
.inRoot(grey_kindOfClass(NSClassFromString("UISwipeActionStandardButton")!))
|
||||
.perform(grey_tap())
|
||||
|
||||
// The history list still exists
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityID("History List"))
|
||||
.assert(grey_notNil())
|
||||
EarlGrey.select(elementWithMatcher: grey_accessibilityLabel(oldestUrl))
|
||||
.assert(grey_notNil())
|
||||
|
||||
// check page 1 does not exist
|
||||
let historyRemoved = GREYCondition(name: "Check entry is removed", block: { _ in
|
||||
var errorOrNil: NSError?
|
||||
let matcher = grey_allOf([grey_accessibilityLabel(urlToDelete),
|
||||
grey_sufficientlyVisible()])
|
||||
EarlGrey.select(elementWithMatcher:matcher).assert(grey_notNil(), error: &errorOrNil)
|
||||
let success = errorOrNil != nil
|
||||
return success
|
||||
}).wait(withTimeout: 5)
|
||||
GREYAssertTrue(historyRemoved, reason: "Failed to remove history")
|
||||
|
||||
EarlGrey.select(elementWithMatcher:grey_accessibilityID("goBack")).perform(grey_tap())
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
//BrowserUtils.resetToAboutHome(tester())
|
||||
BrowserUtils.clearPrivateData(tester: tester())
|
||||
super.tearDown()
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue