mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 15:27:32 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
124
mobile/ios/UITests/ViewMemoryLeakTests.swift
Normal file
124
mobile/ios/UITests/ViewMemoryLeakTests.swift
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
/* 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
|
||||
|
||||
/// This test should be disabled since getTopViewController() crashes with iOS 10
|
||||
/// ------------------------------------------------------------------------------
|
||||
/// Set of tests that wait for weak references to views to be cleared. Technically, this is
|
||||
/// non-deterministic and there are no guarantees the references will be set to nil. In practice,
|
||||
/// though, the references are consistently cleared, which should be good enough for testing.
|
||||
class ViewMemoryLeakTests: KIFTestCase, UITextFieldDelegate {
|
||||
fileprivate var webRoot: String!
|
||||
|
||||
override func setUp() {
|
||||
webRoot = SimplePageServer.start()
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
do {
|
||||
try tester().tryFindingTappableView(withAccessibilityLabel: "home")
|
||||
tester().tapView(withAccessibilityLabel: "home")
|
||||
} catch _ {
|
||||
}
|
||||
BrowserUtils.resetToAboutHome(tester())
|
||||
}
|
||||
/*
|
||||
func testAboutHomeDisposed() {
|
||||
// about:home is already active on startup; grab a reference to it.
|
||||
let browserViewController = getTopViewController()
|
||||
weak var aboutHomeController = getChildViewController(browserViewController, childClass: "HomePanelViewController")
|
||||
|
||||
// Change the page to make about:home go away.
|
||||
tester().tapViewWithAccessibilityIdentifier("url")
|
||||
let url = "\(webRoot)/numberedPage.html?page=1"
|
||||
|
||||
// Work around potential KIF bug. The nillification does not seem to propagate unless we use and explicit autorelease pool.
|
||||
// https://github.com/kif-framework/KIF/issues/739
|
||||
autoreleasepool {
|
||||
tester().clearTextFromAndThenEnterTextIntoCurrentFirstResponder("\(url)\n")
|
||||
}
|
||||
|
||||
tester().waitForWebViewElementWithAccessibilityLabel("Page 1")
|
||||
|
||||
|
||||
tester().runBlock { _ in
|
||||
return (aboutHomeController == nil) ? KIFTestStepResult.Success : KIFTestStepResult.Wait
|
||||
}
|
||||
XCTAssertNil(aboutHomeController, "about:home controller disposed")
|
||||
}
|
||||
|
||||
func testSearchViewControllerDisposed() {
|
||||
// Type the URL to make the search controller appear.
|
||||
tester().tapViewWithAccessibilityIdentifier("url")
|
||||
tester().clearTextFromAndThenEnterTextIntoCurrentFirstResponder("foobar")
|
||||
tester().waitForTimeInterval(0.1) // Wait to make sure that input has propagated through delegate methods
|
||||
let browserViewController = getTopViewController()
|
||||
weak var searchViewController = getChildViewController(browserViewController, childClass: "SearchViewController")
|
||||
XCTAssertNotNil(searchViewController, "Got search controller reference")
|
||||
|
||||
// Submit to close about:home and the search controller.
|
||||
tester().enterTextIntoCurrentFirstResponder("\n")
|
||||
|
||||
tester().runBlock { _ in
|
||||
return (searchViewController == nil) ? KIFTestStepResult.Success : KIFTestStepResult.Wait
|
||||
}
|
||||
XCTAssertNil(searchViewController, "Search controller disposed")
|
||||
}
|
||||
|
||||
func testTabTrayDisposed() {
|
||||
// Enter the tab tray.
|
||||
tester().tapViewWithAccessibilityLabel("Show Tabs")
|
||||
tester().waitForViewWithAccessibilityLabel("Tabs Tray")
|
||||
weak var tabTrayController = getTopViewController()
|
||||
weak var tabCell = tester().waitForTappableViewWithAccessibilityLabel("home")
|
||||
XCTAssertNotNil(tabTrayController, "Got tab tray reference")
|
||||
XCTAssertNotNil(tabCell, "Got tab cell reference")
|
||||
|
||||
// Leave the tab tray.
|
||||
tester().tapViewWithAccessibilityLabel("home")
|
||||
|
||||
tester().runBlock { _ in
|
||||
return (tabTrayController == nil) ? KIFTestStepResult.Success : KIFTestStepResult.Wait
|
||||
}
|
||||
XCTAssertNil(tabTrayController, "Tab tray controller disposed")
|
||||
|
||||
tester().runBlock { _ in
|
||||
return (tabCell == nil) ? KIFTestStepResult.Success : KIFTestStepResult.Wait
|
||||
}
|
||||
XCTAssertNil(tabCell, "Tab tray cell disposed")
|
||||
}
|
||||
|
||||
func testWebViewDisposed() {
|
||||
weak var webView = tester().waitForViewWithAccessibilityLabel("Web content")
|
||||
XCTAssertNotNil(webView, "webView found")
|
||||
|
||||
tester().tapViewWithAccessibilityLabel("Show Tabs")
|
||||
let tabsView = tester().waitForViewWithAccessibilityLabel("Tabs Tray").subviews.first as! UICollectionView
|
||||
let cell = tabsView.cellForItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0))!
|
||||
tester().swipeViewWithAccessibilityLabel(cell.accessibilityLabel, inDirection: KIFSwipeDirection.Left)
|
||||
tester().waitForTappableViewWithAccessibilityLabel("Show Tabs")
|
||||
|
||||
tester().runBlock { _ in
|
||||
return (webView == nil) ? KIFTestStepResult.Success : KIFTestStepResult.Wait
|
||||
}
|
||||
XCTAssertNil(webView, "webView disposed")
|
||||
}
|
||||
|
||||
private func getTopViewController() -> UIViewController {
|
||||
//return (UIApplication.sharedApplication().keyWindow!.rootViewController as! UINavigationController).topViewController!
|
||||
return UIApplication.sharedApplication().keyWindow!.rootViewController!
|
||||
}
|
||||
|
||||
private func getChildViewController(parent: UIViewController, childClass: String) -> UIViewController {
|
||||
let childControllers = parent.childViewControllers.filter { child in
|
||||
let description = NSString(string: child.description)
|
||||
return description.containsString(childClass)
|
||||
}
|
||||
XCTAssertEqual(childControllers.count, 0, "Found 1 child controller of type: \(childClass)")
|
||||
return childControllers.first!
|
||||
}
|
||||
*/
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue