Skip to content

Commit b16c180

Browse files
committed
Bug 1217181 - Create wait() and waitForCondition() test helper functions
1 parent e54e501 commit b16c180

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

Client.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -432,6 +432,7 @@
432432
D3A9949C1A3686BD008AD1AC /* BrowserViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A994951A3686BD008AD1AC /* BrowserViewController.swift */; };
433433
D3A9949D1A3686BD008AD1AC /* Browser.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3A994961A3686BD008AD1AC /* Browser.swift */; };
434434
D3ACB4541AD33F2200748D50 /* WeakList.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3ACB4381AD33EBA00748D50 /* WeakList.swift */; };
435+
D3BA41681BD82F2200DA5457 /* XCTestCaseExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BA41671BD82F2200DA5457 /* XCTestCaseExtensions.swift */; settings = {ASSET_TAGS = (); }; };
435436
D3BA7E0C1B0E902A00153782 /* ContextMenu.js in Resources */ = {isa = PBXBuildFile; fileRef = D3BA7E0B1B0E902A00153782 /* ContextMenu.js */; };
436437
D3BA7E0E1B0E934F00153782 /* ContextMenuHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BA7E0D1B0E934F00153782 /* ContextMenuHelper.swift */; };
437438
D3BE7B261B054D4400641031 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3BE7B251B054D4400641031 /* main.swift */; };
@@ -1622,6 +1623,7 @@
16221623
D3A994951A3686BD008AD1AC /* BrowserViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrowserViewController.swift; sourceTree = "<group>"; };
16231624
D3A994961A3686BD008AD1AC /* Browser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Browser.swift; sourceTree = "<group>"; };
16241625
D3ACB4381AD33EBA00748D50 /* WeakList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeakList.swift; sourceTree = "<group>"; };
1626+
D3BA41671BD82F2200DA5457 /* XCTestCaseExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseExtensions.swift; sourceTree = "<group>"; };
16251627
D3BA7E0B1B0E902A00153782 /* ContextMenu.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = ContextMenu.js; sourceTree = "<group>"; };
16261628
D3BA7E0D1B0E934F00153782 /* ContextMenuHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContextMenuHelper.swift; sourceTree = "<group>"; };
16271629
D3BE7B251B054D4400641031 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
@@ -3051,6 +3053,7 @@
30513053
4A59BF410BBD9B3BE71F4C7C /* TestHistory.swift */,
30523054
0BE108351A1B1EC700D4B712 /* TestLocking.swift */,
30533055
E4CD9F1C1A6D9C2800318571 /* WebServerTests.swift */,
3056+
D3BA41671BD82F2200DA5457 /* XCTestCaseExtensions.swift */,
30543057
F84B21D71A090F8100AAB793 /* Supporting Files */,
30553058
);
30563059
path = ClientTests;
@@ -4785,6 +4788,7 @@
47854788
2F834D1B1A80629A006A0B7B /* FxAContentViewController.swift in Sources */,
47864789
D3FA77971A43B5390010CD32 /* OpenSearch.swift in Sources */,
47874790
D3FA777B1A43B2990010CD32 /* SearchTests.swift in Sources */,
4791+
D3BA41681BD82F2200DA5457 /* XCTestCaseExtensions.swift in Sources */,
47884792
7BBFEEA11BB40A0800A305AA /* ReaderModeCache.swift in Sources */,
47894793
D38B2D441A8D96D00040E6B5 /* GCDWebServerMultiPartFormRequest.m in Sources */,
47904794
E42475DD1AB73B9B00B23D33 /* SWCellScrollView.m in Sources */,
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/* This Source Code Form is subject to the terms of the Mozilla Public
2+
* License, v. 2.0. If a copy of the MPL was not distributed with this
3+
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4+
5+
import Foundation
6+
import XCTest
7+
8+
extension XCTestCase {
9+
func wait(time: NSTimeInterval) {
10+
let expectation = expectationWithDescription("Wait")
11+
let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(time * Double(NSEC_PER_SEC)))
12+
dispatch_after(delayTime, dispatch_get_main_queue()) {
13+
expectation.fulfill()
14+
}
15+
waitForExpectationsWithTimeout(time + 1, handler: nil)
16+
}
17+
18+
func waitForCondition(timeout timeout: NSTimeInterval = 10, condition: () -> Bool) {
19+
let timeoutTime = NSDate.timeIntervalSinceReferenceDate() + timeout
20+
21+
while !condition() {
22+
if NSDate.timeIntervalSinceReferenceDate() > timeoutTime {
23+
XCTFail("Condition timed out")
24+
return
25+
}
26+
27+
wait(0.1)
28+
}
29+
}
30+
}

0 commit comments

Comments
 (0)