blob: 7d86f85963abdf17133405442eb4f8c2a0242a12 [file] [log] [blame] [edit]
// 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)
}
}