// Copyright 2017-present the Material Components for iOS 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. // swiftlint:disable function_body_length // swiftlint:disable type_body_length import XCTest import MaterialComponents.MaterialPalettes import MaterialComponents.MaterialTextFields import MaterialComponents.MaterialTypography class TextFieldControllerClassPropertiesTests: XCTestCase { override func tearDown() { super.tearDown() MDCTextInputControllerFilled.roundedCornersDefault = [] MDCTextInputControllerFilled.errorColorDefault = nil MDCTextInputControllerFilled.inlinePlaceholderColorDefault = nil MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault = false MDCTextInputControllerFilled.activeColorDefault = nil MDCTextInputControllerFilled.normalColorDefault = nil MDCTextInputControllerFilled.disabledColorDefault = nil MDCTextInputControllerFilled.underlineViewModeDefault = .whileEditing MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault = nil MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault = nil MDCTextInputControllerFilled.inlinePlaceholderFontDefault = nil MDCTextInputControllerFilled.leadingUnderlineLabelFontDefault = nil MDCTextInputControllerFilled.trailingUnderlineLabelFontDefault = nil MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault = nil MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault = nil MDCTextInputControllerFilled.floatingPlaceholderScaleDefault = 0.75 MDCTextInputControllerFilled.textInputClearButtonTintColorDefault = nil; MDCTextInputControllerOutlined.roundedCornersDefault = [] MDCTextInputControllerOutlined.errorColorDefault = nil MDCTextInputControllerOutlined.inlinePlaceholderColorDefault = nil MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault = false MDCTextInputControllerOutlined.activeColorDefault = nil MDCTextInputControllerOutlined.normalColorDefault = nil MDCTextInputControllerOutlined.disabledColorDefault = nil MDCTextInputControllerOutlined.underlineViewModeDefault = .whileEditing MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault = nil MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault = nil MDCTextInputControllerOutlined.inlinePlaceholderFontDefault = nil MDCTextInputControllerOutlined.leadingUnderlineLabelFontDefault = nil MDCTextInputControllerOutlined.trailingUnderlineLabelFontDefault = nil MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault = nil MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault = nil MDCTextInputControllerOutlined.floatingPlaceholderScaleDefault = 0.75 MDCTextInputControllerOutlined.isFloatingEnabledDefault = true MDCTextInputControllerOutlined.textInputClearButtonTintColorDefault = nil; MDCTextInputControllerUnderline.roundedCornersDefault = [] MDCTextInputControllerUnderline.errorColorDefault = nil MDCTextInputControllerUnderline.inlinePlaceholderColorDefault = nil MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault = false MDCTextInputControllerUnderline.activeColorDefault = nil MDCTextInputControllerUnderline.normalColorDefault = nil MDCTextInputControllerUnderline.disabledColorDefault = nil MDCTextInputControllerUnderline.underlineViewModeDefault = .whileEditing MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault = nil MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault = nil MDCTextInputControllerUnderline.inlinePlaceholderFontDefault = nil MDCTextInputControllerUnderline.leadingUnderlineLabelFontDefault = nil MDCTextInputControllerUnderline.trailingUnderlineLabelFontDefault = nil MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault = nil MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault = nil MDCTextInputControllerUnderline.floatingPlaceholderScaleDefault = 0.75 MDCTextInputControllerUnderline.isFloatingEnabledDefault = true MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault = nil; MDCTextInputControllerFullWidth.errorColorDefault = nil MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault = nil MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault = false MDCTextInputControllerFullWidth.activeColorDefault = nil MDCTextInputControllerFullWidth.normalColorDefault = nil MDCTextInputControllerFullWidth.disabledColorDefault = nil MDCTextInputControllerFullWidth.underlineViewModeDefault = .never MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault = nil MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault = nil MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault = nil MDCTextInputControllerFullWidth.leadingUnderlineLabelFontDefault = nil MDCTextInputControllerFullWidth.trailingUnderlineLabelFontDefault = nil MDCTextInputControllerFullWidth.textInputClearButtonTintColorDefault = nil } func testFilled() { // Test the values of the class properties. XCTAssertEqual(MDCTextInputControllerFilled.errorColorDefault, MDCPalette.red.accent400) XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault, false) XCTAssertEqual(MDCTextInputControllerFilled.activeColorDefault, MDCPalette.blue.accent700) XCTAssertEqual(MDCTextInputControllerFilled.normalColorDefault, .lightGray) XCTAssertEqual(MDCTextInputControllerFilled.underlineHeightActiveDefault, 2) XCTAssertEqual(MDCTextInputControllerFilled.underlineHeightNormalDefault, 1) XCTAssertEqual(MDCTextInputControllerFilled.underlineViewModeDefault, .whileEditing) XCTAssertEqual(MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault, MDCTextInputControllerFilled.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault, MDCTextInputControllerFilled.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .body1)) XCTAssertEqual(MDCTextInputControllerFilled.leadingUnderlineLabelFontDefault, MDCTextInputControllerFilled.trailingUnderlineLabelFontDefault) XCTAssertEqual(MDCTextInputControllerFilled.leadingUnderlineLabelFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .caption)) // Default specific properties XCTAssertEqual(MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault, MDCTextInputControllerFilled.activeColorDefault) XCTAssertEqual(MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(Float(MDCTextInputControllerFilled.floatingPlaceholderScaleDefault), 0.75) XCTAssertEqual(MDCTextInputControllerFilled.isFloatingEnabledDefault, true) XCTAssertEqual(MDCTextInputControllerFilled.roundedCornersDefault, [UIRectCorner.topLeft, .topRight]) XCTAssertNil(MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) // Test the use of the class properties. let textField = MDCTextField() var controller = MDCTextInputControllerFilled(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerFilled.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerFilled.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerFilled.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerFilled.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerFilled.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerFilled.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerFilled.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerFilled.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerFilled.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerFilled.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.isFloatingEnabled, MDCTextInputControllerFilled.isFloatingEnabledDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerFilled.roundedCornersDefault) // Test the changes to the class properties. MDCTextInputControllerFilled.errorColorDefault = .green XCTAssertEqual(MDCTextInputControllerFilled.errorColorDefault, .green) MDCTextInputControllerFilled.inlinePlaceholderColorDefault = .orange XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderColorDefault, .orange) MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault = false XCTAssertEqual(MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault, false) MDCTextInputControllerFilled.activeColorDefault = .purple XCTAssertEqual(MDCTextInputControllerFilled.activeColorDefault, .purple) MDCTextInputControllerFilled.normalColorDefault = .white XCTAssertEqual(MDCTextInputControllerFilled.normalColorDefault, .white) MDCTextInputControllerFilled.underlineHeightActiveDefault = 11 XCTAssertEqual(MDCTextInputControllerFilled.underlineHeightActiveDefault, 11) MDCTextInputControllerFilled.underlineHeightNormalDefault = 5 XCTAssertEqual(MDCTextInputControllerFilled.underlineHeightNormalDefault, 5) MDCTextInputControllerFilled.underlineViewModeDefault = .unlessEditing XCTAssertEqual(MDCTextInputControllerFilled.underlineViewModeDefault, .unlessEditing) MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault = .brown XCTAssertEqual(MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault, .brown) MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault = .cyan XCTAssertEqual(MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault, .cyan) MDCTextInputControllerFilled.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 4) XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 4)) MDCTextInputControllerFilled.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 5) XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 5)) MDCTextInputControllerFilled.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 6) XCTAssertEqual(MDCTextInputControllerFilled.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 6)) // Default specific properties MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault = .yellow XCTAssertEqual(MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault, .yellow) MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault = .orange XCTAssertEqual(MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault, .orange) MDCTextInputControllerFilled.floatingPlaceholderScaleDefault = 0.6 XCTAssertEqual(Float(MDCTextInputControllerFilled.floatingPlaceholderScaleDefault), 0.6) MDCTextInputControllerFilled.isFloatingEnabledDefault = false XCTAssertEqual(MDCTextInputControllerFilled.isFloatingEnabledDefault, false) MDCTextInputControllerFilled.roundedCornersDefault = [.bottomRight] XCTAssertEqual(MDCTextInputControllerFilled.roundedCornersDefault, [.bottomRight]) // Test that the changes to the class properties can propagate to an instance. controller = MDCTextInputControllerFilled(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerFilled.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerFilled.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerFilled.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerFilled.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerFilled.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerFilled.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerFilled.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerFilled.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerFilled.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerFilled.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerFilled.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerFilled.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerFilled.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerFilled.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerFilled.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerFilled.roundedCornersDefault) } func testOutlined() { // Test the values of the class properties. XCTAssertEqual(MDCTextInputControllerOutlined.errorColorDefault, MDCPalette.red.accent400) XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault, false) XCTAssertEqual(MDCTextInputControllerOutlined.activeColorDefault, MDCPalette.blue.accent700) XCTAssertEqual(MDCTextInputControllerOutlined.normalColorDefault, .lightGray) XCTAssertEqual(MDCTextInputControllerOutlined.underlineHeightActiveDefault, 0) XCTAssertEqual(MDCTextInputControllerOutlined.underlineHeightNormalDefault, 0) XCTAssertEqual(MDCTextInputControllerOutlined.underlineViewModeDefault, .whileEditing) XCTAssertEqual(MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault, MDCTextInputControllerOutlined.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault, MDCTextInputControllerOutlined.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .body1)) XCTAssertEqual(MDCTextInputControllerOutlined.leadingUnderlineLabelFontDefault, MDCTextInputControllerOutlined.trailingUnderlineLabelFontDefault) XCTAssertEqual(MDCTextInputControllerOutlined.leadingUnderlineLabelFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .caption)) // Default specific properties XCTAssertEqual(MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault, MDCTextInputControllerOutlined.activeColorDefault) XCTAssertEqual(MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(Float(MDCTextInputControllerOutlined.floatingPlaceholderScaleDefault), 0.75) XCTAssertEqual(MDCTextInputControllerOutlined.isFloatingEnabledDefault, true) XCTAssertEqual(MDCTextInputControllerOutlined.roundedCornersDefault, []) XCTAssertNil(MDCTextInputControllerOutlined.textInputClearButtonTintColorDefault) // Test the use of the class properties. let textField = MDCTextField() var controller = MDCTextInputControllerOutlined(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerOutlined.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerOutlined.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerOutlined.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerOutlined.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerOutlined.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerOutlined.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerOutlined.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerOutlined.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerOutlined.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerOutlined.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.isFloatingEnabled, MDCTextInputControllerOutlined.isFloatingEnabledDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerOutlined.roundedCornersDefault) // Test the changes to the class properties. MDCTextInputControllerOutlined.errorColorDefault = .green XCTAssertEqual(MDCTextInputControllerOutlined.errorColorDefault, .green) MDCTextInputControllerOutlined.inlinePlaceholderColorDefault = .orange XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderColorDefault, .orange) MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault = false XCTAssertEqual(MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault, false) MDCTextInputControllerOutlined.activeColorDefault = .purple XCTAssertEqual(MDCTextInputControllerOutlined.activeColorDefault, .purple) MDCTextInputControllerOutlined.normalColorDefault = .white XCTAssertEqual(MDCTextInputControllerOutlined.normalColorDefault, .white) MDCTextInputControllerOutlined.underlineHeightActiveDefault = 11 XCTAssertEqual(MDCTextInputControllerOutlined.underlineHeightActiveDefault, 11) MDCTextInputControllerOutlined.underlineHeightNormalDefault = 5 XCTAssertEqual(MDCTextInputControllerOutlined.underlineHeightNormalDefault, 5) MDCTextInputControllerOutlined.underlineViewModeDefault = .unlessEditing XCTAssertEqual(MDCTextInputControllerOutlined.underlineViewModeDefault, .unlessEditing) MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault = .green XCTAssertEqual(MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault, .green) MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault = .gray XCTAssertEqual(MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault, .gray) MDCTextInputControllerOutlined.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 4) XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 4)) MDCTextInputControllerOutlined.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 5) XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 5)) MDCTextInputControllerOutlined.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 6) XCTAssertEqual(MDCTextInputControllerOutlined.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 6)) // Default specific properties MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault = .clear XCTAssertEqual(MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault, .clear) MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault = .purple XCTAssertEqual(MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault, .purple) MDCTextInputControllerOutlined.floatingPlaceholderScaleDefault = 0.6 XCTAssertEqual(Float(MDCTextInputControllerOutlined.floatingPlaceholderScaleDefault), 0.6) MDCTextInputControllerOutlined.isFloatingEnabledDefault = false XCTAssertEqual(MDCTextInputControllerOutlined.isFloatingEnabledDefault, false) MDCTextInputControllerOutlined.roundedCornersDefault = [.bottomRight] XCTAssertEqual(MDCTextInputControllerOutlined.roundedCornersDefault, [.bottomRight]) // Test that the changes to the class properties can propagate to an instance. controller = MDCTextInputControllerOutlined(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerOutlined.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerOutlined.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerOutlined.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerOutlined.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerOutlined.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerOutlined.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerOutlined.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerOutlined.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerOutlined.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerOutlined.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerOutlined.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerOutlined.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerOutlined.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerOutlined.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerOutlined.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerOutlined.roundedCornersDefault) } func testUnderline() { // Test the values of the class properties. XCTAssertEqual(MDCTextInputControllerUnderline.errorColorDefault, MDCPalette.red.accent400) XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault, false) XCTAssertEqual(MDCTextInputControllerUnderline.activeColorDefault, MDCPalette.blue.accent700) XCTAssertEqual(MDCTextInputControllerUnderline.normalColorDefault, .lightGray) XCTAssertEqual(MDCTextInputControllerUnderline.underlineHeightActiveDefault, 2) XCTAssertEqual(MDCTextInputControllerUnderline.underlineHeightNormalDefault, 1) XCTAssertEqual(MDCTextInputControllerUnderline.underlineViewModeDefault, .whileEditing) XCTAssertEqual(MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault, MDCTextInputControllerUnderline.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault, MDCTextInputControllerUnderline.inlinePlaceholderColorDefault) XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .body1)) XCTAssertEqual(MDCTextInputControllerUnderline.leadingUnderlineLabelFontDefault, MDCTextInputControllerUnderline.trailingUnderlineLabelFontDefault) XCTAssertEqual(MDCTextInputControllerUnderline.leadingUnderlineLabelFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .caption)) // Default specific properties XCTAssertEqual(MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault, MDCTextInputControllerUnderline.activeColorDefault) XCTAssertEqual(MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(Float(MDCTextInputControllerUnderline.floatingPlaceholderScaleDefault), 0.75) XCTAssertEqual(MDCTextInputControllerUnderline.isFloatingEnabledDefault, true) XCTAssertEqual(MDCTextInputControllerUnderline.roundedCornersDefault, []) XCTAssertNil(MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault) // Test the use of the class properties. let textField = MDCTextField() var controller = MDCTextInputControllerUnderline(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerUnderline.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerUnderline.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerUnderline.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerUnderline.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerUnderline.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerUnderline.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerUnderline.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerUnderline.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerUnderline.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerUnderline.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.isFloatingEnabled, MDCTextInputControllerUnderline.isFloatingEnabledDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerUnderline.roundedCornersDefault) // Test the changes to the class properties. MDCTextInputControllerUnderline.errorColorDefault = .green XCTAssertEqual(MDCTextInputControllerUnderline.errorColorDefault, .green) MDCTextInputControllerUnderline.inlinePlaceholderColorDefault = .orange XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderColorDefault, .orange) MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault = false XCTAssertEqual(MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault, false) MDCTextInputControllerUnderline.activeColorDefault = .purple XCTAssertEqual(MDCTextInputControllerUnderline.activeColorDefault, .purple) MDCTextInputControllerUnderline.normalColorDefault = .white XCTAssertEqual(MDCTextInputControllerUnderline.normalColorDefault, .white) MDCTextInputControllerUnderline.underlineHeightActiveDefault = 11 XCTAssertEqual(MDCTextInputControllerUnderline.underlineHeightActiveDefault, 11) MDCTextInputControllerUnderline.underlineHeightNormalDefault = 5 XCTAssertEqual(MDCTextInputControllerUnderline.underlineHeightNormalDefault, 5) MDCTextInputControllerUnderline.underlineViewModeDefault = .unlessEditing XCTAssertEqual(MDCTextInputControllerUnderline.underlineViewModeDefault, .unlessEditing) MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault = .blue XCTAssertEqual(MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault, .blue) MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault = .white XCTAssertEqual(MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault, .white) MDCTextInputControllerUnderline.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 4) XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 4)) MDCTextInputControllerUnderline.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 5) XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 5)) MDCTextInputControllerUnderline.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 6) XCTAssertEqual(MDCTextInputControllerUnderline.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 6)) // Default specific properties MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault = .red XCTAssertEqual(MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault, .red) MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault = .red XCTAssertEqual(MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault, .red) MDCTextInputControllerUnderline.floatingPlaceholderScaleDefault = 0.6 XCTAssertEqual(Float(MDCTextInputControllerUnderline.floatingPlaceholderScaleDefault), 0.6) MDCTextInputControllerUnderline.isFloatingEnabledDefault = false XCTAssertEqual(MDCTextInputControllerUnderline.isFloatingEnabledDefault, false) MDCTextInputControllerUnderline.roundedCornersDefault = [.bottomRight] XCTAssertEqual(MDCTextInputControllerUnderline.roundedCornersDefault, [.bottomRight]) // Test that the changes to the class properties can propagate to an instance. controller = MDCTextInputControllerUnderline(textInput: textField) XCTAssertEqual(controller.errorColor, MDCTextInputControllerUnderline.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerUnderline.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerUnderline.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerUnderline.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerUnderline.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerUnderline.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerUnderline.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerUnderline.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerUnderline.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerUnderline.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerUnderline.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerUnderline.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerUnderline.trailingUnderlineLabelFontDefault) // Default specific properties XCTAssertEqual(controller.floatingPlaceholderActiveColor, MDCTextInputControllerUnderline.floatingPlaceholderActiveColorDefault) XCTAssertEqual(controller.floatingPlaceholderNormalColor, MDCTextInputControllerUnderline.floatingPlaceholderNormalColorDefault) XCTAssertEqual(controller.isFloatingEnabled, MDCTextInputControllerUnderline.isFloatingEnabledDefault) XCTAssertEqual(controller.roundedCorners, MDCTextInputControllerUnderline.roundedCornersDefault) } func testFullWidth() { // Test the values of the class properties. XCTAssertEqual(MDCTextInputControllerFullWidth.disabledColorDefault, .clear) XCTAssertEqual(MDCTextInputControllerFullWidth.errorColorDefault, MDCPalette.red.accent400) XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault, false) XCTAssertEqual(MDCTextInputControllerFullWidth.activeColorDefault, .clear) XCTAssertEqual(MDCTextInputControllerFullWidth.normalColorDefault, .clear) XCTAssertEqual(MDCTextInputControllerFullWidth.underlineHeightActiveDefault, 0) XCTAssertEqual(MDCTextInputControllerFullWidth.underlineHeightNormalDefault, 0) XCTAssertEqual(MDCTextInputControllerFullWidth.underlineViewModeDefault, .never) XCTAssertEqual(MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault, .clear) XCTAssertEqual(MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault, UIColor(white: 0, alpha: CGFloat(0.54))) XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .body1)) XCTAssertEqual(MDCTextInputControllerFullWidth.leadingUnderlineLabelFontDefault, MDCTextInputControllerFullWidth.trailingUnderlineLabelFontDefault) XCTAssertEqual(MDCTextInputControllerFullWidth.leadingUnderlineLabelFontDefault, UIFont.mdc_standardFont(forMaterialTextStyle: .caption)) XCTAssertNil(MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) // Test the use of the class properties. let textField = MDCTextField() var controller = MDCTextInputControllerFullWidth(textInput: textField) XCTAssertEqual(controller.disabledColor, .clear) XCTAssertEqual(controller.errorColor, MDCTextInputControllerFullWidth.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerFullWidth.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerFullWidth.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerFullWidth.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerFullWidth.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerFullWidth.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerFullWidth.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerFullWidth.trailingUnderlineLabelFontDefault) // Test the changes to the class properties. MDCTextInputControllerFullWidth.disabledColorDefault = .red XCTAssertNotEqual(MDCTextInputControllerFullWidth.disabledColorDefault, .red) MDCTextInputControllerFullWidth.errorColorDefault = .green XCTAssertEqual(MDCTextInputControllerFullWidth.errorColorDefault, .green) MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault = .orange XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault, .orange) MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault = false XCTAssertEqual(MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault, false) MDCTextInputControllerFullWidth.activeColorDefault = .purple XCTAssertEqual(MDCTextInputControllerFullWidth.activeColorDefault, .clear) MDCTextInputControllerFullWidth.normalColorDefault = .white XCTAssertEqual(MDCTextInputControllerFullWidth.normalColorDefault, .clear) MDCTextInputControllerFullWidth.underlineHeightActiveDefault = 9 XCTAssertEqual(MDCTextInputControllerFullWidth.underlineHeightActiveDefault, 0) MDCTextInputControllerFullWidth.underlineHeightNormalDefault = 17 XCTAssertEqual(MDCTextInputControllerFullWidth.underlineHeightNormalDefault, 0) MDCTextInputControllerFullWidth.underlineViewModeDefault = .unlessEditing XCTAssertEqual(MDCTextInputControllerFullWidth.underlineViewModeDefault, .never) MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault = .brown XCTAssertEqual(MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault, .clear) MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault = .cyan XCTAssertEqual(MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault, .cyan) MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 4) XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 4)) MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 5) XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 5)) MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault = UIFont.systemFont(ofSize: 6) XCTAssertEqual(MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault, UIFont.systemFont(ofSize: 6)) // Test the changes to the class properties can propagate to an instance. controller = MDCTextInputControllerFullWidth(textInput: textField) XCTAssertEqual(controller.disabledColor, .clear) XCTAssertEqual(controller.errorColor, MDCTextInputControllerFullWidth.errorColorDefault) XCTAssertEqual(controller.inlinePlaceholderColor, MDCTextInputControllerFullWidth.inlinePlaceholderColorDefault) XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory, MDCTextInputControllerFullWidth.mdc_adjustsFontForContentSizeCategoryDefault) XCTAssertEqual(controller.activeColor, MDCTextInputControllerFullWidth.activeColorDefault) XCTAssertEqual(controller.normalColor, MDCTextInputControllerFullWidth.normalColorDefault) XCTAssertEqual(controller.underlineHeightActive, MDCTextInputControllerFullWidth.underlineHeightActiveDefault) XCTAssertEqual(controller.underlineHeightNormal, MDCTextInputControllerFullWidth.underlineHeightNormalDefault) XCTAssertEqual(controller.underlineViewMode, MDCTextInputControllerFullWidth.underlineViewModeDefault) XCTAssertEqual(controller.leadingUnderlineLabelTextColor, MDCTextInputControllerFullWidth.leadingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.trailingUnderlineLabelTextColor, MDCTextInputControllerFullWidth.trailingUnderlineLabelTextColorDefault) XCTAssertEqual(controller.inlinePlaceholderFont, MDCTextInputControllerFullWidth.inlinePlaceholderFontDefault) XCTAssertEqual(controller.leadingUnderlineLabelFont, MDCTextInputControllerFullWidth.leadingUnderlineLabelFontDefault) XCTAssertEqual(controller.trailingUnderlineLabelFont, MDCTextInputControllerFullWidth.trailingUnderlineLabelFontDefault) } // MARK: - textInputClearButtonTintColor func testFilledTextInputClearButtonTintColorUsesDefault() { // Given MDCTextInputControllerFilled.textInputClearButtonTintColorDefault = .orange // When let textInput = MDCTextField() let controllerFilled = MDCTextInputControllerFilled(textInput: textInput) // Then XCTAssertEqual(controllerFilled.textInputClearButtonTintColor, MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) } func testFilledTextInputClearButtonTintColorDefaultAppliesToTextField() { // Given MDCTextInputControllerFilled.textInputClearButtonTintColorDefault = .orange // When let textInputFilled = MDCTextField() let _ = MDCTextInputControllerFilled(textInput: textInputFilled) // Then XCTAssertEqual(textInputFilled.clearButton.tintColor, MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) } func testFilledTextInputClearButtonTintColorAppliesToTextField() { // Given let textInputFilled = MDCTextField() let controllerFilled = MDCTextInputControllerFilled(textInput: textInputFilled) // When controllerFilled.textInputClearButtonTintColor = .black // Then XCTAssertEqual(textInputFilled.clearButton.tintColor, controllerFilled.textInputClearButtonTintColor) } func testOutlinedTextInputClearButtonTintColorUsesDefault() { // Given MDCTextInputControllerOutlined.textInputClearButtonTintColorDefault = .cyan // When let textInput = MDCTextField() let controllerOutlined = MDCTextInputControllerOutlined(textInput: textInput) // Then XCTAssertEqual(controllerOutlined.textInputClearButtonTintColor, MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) } func testOutlinedTextInputClearButtonTintColorDefaultAppliesToTextField() { // Given MDCTextInputControllerOutlined.textInputClearButtonTintColorDefault = .cyan // When let textInputOutlined = MDCTextField() let _ = MDCTextInputControllerOutlined(textInput: textInputOutlined) // Then XCTAssertEqual(textInputOutlined.clearButton.tintColor, MDCTextInputControllerFilled.textInputClearButtonTintColorDefault) } func testOutlinedTextInputClearButtonTintColorAppliesToTextField() { // Given let textInputOutlined = MDCTextField() let controllerOutlined = MDCTextInputControllerOutlined(textInput: textInputOutlined) // When controllerOutlined.textInputClearButtonTintColor = .red // Then XCTAssertEqual(textInputOutlined.clearButton.tintColor, controllerOutlined.textInputClearButtonTintColor) } func testUnderlineTextInputClearButtonTintColorUsesDefault() { // Given MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault = .orange // When let textInput = MDCTextField() let controllerUnderline = MDCTextInputControllerUnderline(textInput: textInput) // Then XCTAssertEqual(controllerUnderline.textInputClearButtonTintColor, MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault) } func testUnderlineTextInputClearButtonTintColorDefaultAppliesToTextField() { // Given MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault = .orange // When let textInputUnderline = MDCTextField() let _ = MDCTextInputControllerUnderline(textInput: textInputUnderline) // Then XCTAssertEqual(textInputUnderline.clearButton.tintColor, MDCTextInputControllerUnderline.textInputClearButtonTintColorDefault) } func testUnderlineTextInputClearButtonTintColorAppliesToTextField() { // Given let textInputUnderline = MDCTextField() let controllerUnderline = MDCTextInputControllerUnderline(textInput: textInputUnderline) // When controllerUnderline.textInputClearButtonTintColor = .black // Then XCTAssertEqual(textInputUnderline.clearButton.tintColor, controllerUnderline.textInputClearButtonTintColor) } func testFullWidthTextInputClearButtonTintColorUsesDefault() { // Given MDCTextInputControllerFullWidth.textInputClearButtonTintColorDefault = .orange // When let textInput = MDCTextField() let controllerFullWidth = MDCTextInputControllerFullWidth(textInput: textInput) // Then XCTAssertEqual(controllerFullWidth.textInputClearButtonTintColor, MDCTextInputControllerFullWidth.textInputClearButtonTintColorDefault) } func testFullWidthTextInputClearButtonTintColorDefaultAppliesToTextField() { // Given MDCTextInputControllerFullWidth.textInputClearButtonTintColorDefault = .orange // When let textInputFullWidth = MDCTextField() let _ = MDCTextInputControllerFullWidth(textInput: textInputFullWidth) // Then XCTAssertEqual(textInputFullWidth.clearButton.tintColor, MDCTextInputControllerFullWidth.textInputClearButtonTintColorDefault) } func testFullWidthTextInputClearButtonTintColorAppliesToTextField() { // Given let textInputFullWidth = MDCTextField() let controllerFullWidth = MDCTextInputControllerFullWidth(textInput: textInputFullWidth) // When controllerFullWidth.textInputClearButtonTintColor = .black // Then XCTAssertEqual(textInputFullWidth.clearButton.tintColor, controllerFullWidth.textInputClearButtonTintColor) } }