| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- * Copyright 2022 Google LLC
- *
- * 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 GoogleSignInSwift
- @MainActor
- @available(iOS 13.0, macOS 10.15, *)
- class GoogleSignInButtonStylingTests: XCTestCase {
- private typealias ButtonViewModelInfo = (
- scheme: GoogleSignInButtonColorScheme,
- style: GoogleSignInButtonStyle,
- state: GoogleSignInButtonState
- )
- func testThatViewModelGetsCorrectColor() {
- let stylingTuples: [ButtonViewModelInfo] = [
- (.light, .standard, .normal),
- (.light, .wide, .normal),
- (.light, .icon, .normal),
- (.light, .standard, .pressed),
- (.light, .wide, .pressed),
- (.light, .icon, .pressed),
- (.light, .standard, .disabled),
- (.light, .wide, .disabled),
- (.light, .icon, .disabled),
- (.dark, .standard, .normal),
- (.dark, .wide, .normal),
- (.dark, .icon, .normal),
- (.dark, .standard, .pressed),
- (.dark, .wide, .pressed),
- (.dark, .icon, .pressed),
- (.dark, .standard, .disabled),
- (.dark, .wide, .disabled),
- (.dark, .icon, .disabled),
- ]
- for styleTuple in stylingTuples {
- buttonViewModelAndColor(
- scheme: styleTuple.scheme,
- style: styleTuple.style,
- state: styleTuple.state
- ) { viewModel, colors in
- XCTAssertEqual(
- viewModel.buttonStyle.colors.foregroundColor,
- colors.foregroundColor
- )
- XCTAssertEqual(
- viewModel.buttonStyle.colors.backgroundColor,
- colors.backgroundColor
- )
- XCTAssertEqual(
- viewModel.buttonStyle.colors.iconColor,
- colors.iconColor
- )
- XCTAssertEqual(
- viewModel.buttonStyle.colors.iconBorderColor,
- colors.iconBorderColor
- )
- }
- }
- }
- }
- @available(iOS 13.0, macOS 10.15, *)
- extension GoogleSignInButtonStylingTests {
- func buttonViewModelAndColor(
- scheme: GoogleSignInButtonColorScheme,
- style: GoogleSignInButtonStyle,
- state: GoogleSignInButtonState,
- completion: (GoogleSignInButtonViewModel, SignInButtonColor) -> Void
- ) {
- let vm = GoogleSignInButtonViewModel(
- scheme: scheme,
- style: style,
- state: state
- )
- let bc = SignInButtonColor(scheme: scheme, state: state)
- completion(vm, bc)
- }
- }
|