| // Copyright 2016 The Tulsi Authors. All rights reserved. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| import XCTest |
| |
| @testable import BazelIntegrationTestCase |
| @testable import TulsiEndToEndTestBase |
| @testable import TulsiGenerator |
| |
| // End to end test that generates the Buttons project and runs its unit tests. This variation of the |
| // test uses the canary Bazel binary. |
| class ButtonsEndToEndTest: TulsiEndToEndTest { |
| fileprivate let buttonsProjectPath |
| = "third_party/tulsi/src/TulsiEndToEndTests/Resources/Buttons.tulsiproj" |
| |
| override func setUp() { |
| super.setUp() |
| guard let canaryBazelURL = fakeBazelWorkspace.canaryBazelURL else { |
| XCTFail("Expected Bazel canary URL.") |
| return |
| } |
| XCTAssert( |
| fileManager.fileExists(atPath: canaryBazelURL.path), "Bazel canary binary is missing.") |
| |
| bazelURL = canaryBazelURL |
| let completionInfo = ProcessRunner.launchProcessSync(bazelURL.path, arguments: ["version"]) |
| if let versionOutput = String(data: completionInfo.stdout, encoding: .utf8) { |
| print(versionOutput) |
| } |
| |
| if !copyDataToFakeWorkspace("third_party/tulsi/src/TulsiEndToEndTests/Resources") { |
| XCTFail("Failed to copy Buttons files to fake execroot.") |
| } |
| } |
| |
| func testButtonsWithCanaryBazel() throws { |
| let xcodeProjectURL = generateXcodeProject( |
| tulsiProject: buttonsProjectPath, |
| config: "Buttons") |
| XCTAssert( |
| fileManager.fileExists(atPath: xcodeProjectURL.path), "Xcode project was not generated.") |
| testXcodeProject(xcodeProjectURL, scheme: "ButtonsLogicTests") |
| } |
| } |