blob: b3f0991903ac8f47947d0ab202f5c723646ddde4 [file] [log] [blame]
/*
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 TextFieldControllerClassPropertiesLegacyTests: XCTestCase {
override func tearDown() {
super.tearDown()
MDCTextInputControllerLegacyDefault.errorColorDefault = nil
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault = nil
MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault = true
MDCTextInputControllerLegacyDefault.activeColorDefault = nil
MDCTextInputControllerLegacyDefault.normalColorDefault = nil
MDCTextInputControllerLegacyDefault.underlineViewModeDefault = .whileEditing
MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault = nil
MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault = nil
MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault = nil
MDCTextInputControllerLegacyDefault.floatingPlaceholderScaleDefault = 0.75
MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault = true
MDCTextInputControllerLegacyFullWidth.errorColorDefault = nil
MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault = nil
MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault = true
MDCTextInputControllerLegacyFullWidth.activeColorDefault = nil
MDCTextInputControllerLegacyFullWidth.normalColorDefault = nil
MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault = .never
MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault = nil
MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault = nil
}
func testLegacyDefault() {
// Test the values of the class properties.
XCTAssertEqual(MDCTextInputControllerLegacyDefault.errorColorDefault, MDCPalette.red.accent400)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
XCTAssertEqual(MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault, true)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.activeColorDefault,
MDCPalette.blue.accent700)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.normalColorDefault, .lightGray)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.underlineViewModeDefault, .whileEditing)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
XCTAssertEqual(MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
XCTAssertEqual(MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault,
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault,
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault)
// Default specific properties
XCTAssertEqual(MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
XCTAssertEqual(Float(MDCTextInputControllerLegacyDefault.floatingPlaceholderScaleDefault), 0.75)
XCTAssertEqual(MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault, true)
// Test the use of the class properties.
let textField = MDCTextField()
var controller = MDCTextInputControllerLegacyDefault(textInput: textField)
XCTAssertEqual(controller.errorColor, MDCTextInputControllerLegacyDefault.errorColorDefault)
XCTAssertEqual(controller.inlinePlaceholderColor,
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault)
XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory,
MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault)
XCTAssertEqual(controller.activeColor,
MDCTextInputControllerLegacyDefault.activeColorDefault)
XCTAssertEqual(controller.normalColor,
MDCTextInputControllerLegacyDefault.normalColorDefault)
XCTAssertEqual(controller.underlineViewMode,
MDCTextInputControllerLegacyDefault.underlineViewModeDefault)
XCTAssertEqual(controller.leadingUnderlineLabelTextColor,
MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault)
XCTAssertEqual(controller.trailingUnderlineLabelTextColor,
MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault)
// Default specific properties
XCTAssertEqual(controller.floatingPlaceholderNormalColor,
MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault)
XCTAssertEqual(controller.isFloatingEnabled,
MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault)
// Test the changes to the class properties.
MDCTextInputControllerLegacyDefault.errorColorDefault = .green
XCTAssertEqual(MDCTextInputControllerLegacyDefault.errorColorDefault, .green)
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault = .orange
XCTAssertEqual(MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault, .orange)
MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault = false
XCTAssertEqual(MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault,
false)
MDCTextInputControllerLegacyDefault.activeColorDefault = .purple
XCTAssertEqual(MDCTextInputControllerLegacyDefault.activeColorDefault, .purple)
MDCTextInputControllerLegacyDefault.normalColorDefault = .white
XCTAssertEqual(MDCTextInputControllerLegacyDefault.normalColorDefault, .white)
MDCTextInputControllerLegacyDefault.underlineViewModeDefault = .unlessEditing
XCTAssertEqual(MDCTextInputControllerLegacyDefault.underlineViewModeDefault, .unlessEditing)
MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault = .blue
XCTAssertEqual(MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault, .blue)
MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault = .white
XCTAssertEqual(MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault, .white)
// Default specific properties
MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault = .red
XCTAssertEqual(MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault, .red)
MDCTextInputControllerLegacyDefault.floatingPlaceholderScaleDefault = 0.6
XCTAssertEqual(Float(MDCTextInputControllerLegacyDefault.floatingPlaceholderScaleDefault), 0.6)
MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault = false
XCTAssertEqual(MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault, false)
// Test the changes to the class properties can propogate to an instance.
controller = MDCTextInputControllerLegacyDefault(textInput: textField)
XCTAssertEqual(controller.errorColor, MDCTextInputControllerLegacyDefault.errorColorDefault)
XCTAssertEqual(controller.inlinePlaceholderColor,
MDCTextInputControllerLegacyDefault.inlinePlaceholderColorDefault)
XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory,
MDCTextInputControllerLegacyDefault.mdc_adjustsFontForContentSizeCategoryDefault)
XCTAssertEqual(controller.activeColor,
MDCTextInputControllerLegacyDefault.activeColorDefault)
XCTAssertEqual(controller.normalColor,
MDCTextInputControllerLegacyDefault.normalColorDefault)
XCTAssertEqual(controller.underlineViewMode,
MDCTextInputControllerLegacyDefault.underlineViewModeDefault)
XCTAssertEqual(controller.leadingUnderlineLabelTextColor,
MDCTextInputControllerLegacyDefault.leadingUnderlineLabelTextColorDefault)
XCTAssertEqual(controller.trailingUnderlineLabelTextColor,
MDCTextInputControllerLegacyDefault.trailingUnderlineLabelTextColorDefault)
// Default specific properties
XCTAssertEqual(controller.floatingPlaceholderNormalColor,
MDCTextInputControllerLegacyDefault.floatingPlaceholderNormalColorDefault)
XCTAssertEqual(controller.isFloatingEnabled,
MDCTextInputControllerLegacyDefault.isFloatingEnabledDefault)
}
func testLegacyFullWidth() {
// Test the values of the class properties.
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.disabledColorDefault, .clear)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.errorColorDefault, MDCPalette.red.accent400)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault,
true)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.activeColorDefault, .clear)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.normalColorDefault, .clear)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault, .never)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault, .clear)
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault,
UIColor(white: 0, alpha: CGFloat(Float(0.54))))
// Test the use of the class properties.
let textField = MDCTextField()
var controller = MDCTextInputControllerLegacyFullWidth(textInput: textField)
XCTAssertEqual(controller.disabledColor, .clear)
XCTAssertEqual(controller.errorColor, MDCTextInputControllerLegacyFullWidth.errorColorDefault)
XCTAssertEqual(controller.inlinePlaceholderColor,
MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault)
XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory,
MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault)
XCTAssertEqual(controller.activeColor,
MDCTextInputControllerLegacyFullWidth.activeColorDefault)
XCTAssertEqual(controller.normalColor,
MDCTextInputControllerLegacyFullWidth.normalColorDefault)
XCTAssertEqual(controller.underlineViewMode,
MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault)
XCTAssertEqual(controller.leadingUnderlineLabelTextColor,
MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault)
XCTAssertEqual(controller.trailingUnderlineLabelTextColor,
MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault)
// Test the changes to the class properties.
MDCTextInputControllerLegacyFullWidth.disabledColorDefault = .red
XCTAssertNotEqual(MDCTextInputControllerLegacyFullWidth.disabledColorDefault, .red)
MDCTextInputControllerLegacyFullWidth.errorColorDefault = .green
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.errorColorDefault, .green)
MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault = .orange
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault, .orange)
MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault = false
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault,
false)
MDCTextInputControllerLegacyFullWidth.activeColorDefault = .purple
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.activeColorDefault, .clear)
MDCTextInputControllerLegacyFullWidth.normalColorDefault = .white
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.normalColorDefault, .clear)
MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault = .unlessEditing
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault, .never)
MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault = .brown
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault, .clear)
MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault = .cyan
XCTAssertEqual(MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault, .cyan)
// Test the changes to the class properties can propogate to an instance.
controller = MDCTextInputControllerLegacyFullWidth(textInput: textField)
XCTAssertEqual(controller.disabledColor, .clear)
XCTAssertEqual(controller.errorColor, MDCTextInputControllerLegacyFullWidth.errorColorDefault)
XCTAssertEqual(controller.inlinePlaceholderColor,
MDCTextInputControllerLegacyFullWidth.inlinePlaceholderColorDefault)
XCTAssertEqual(controller.mdc_adjustsFontForContentSizeCategory,
MDCTextInputControllerLegacyFullWidth.mdc_adjustsFontForContentSizeCategoryDefault)
XCTAssertEqual(controller.activeColor,
MDCTextInputControllerLegacyFullWidth.activeColorDefault)
XCTAssertEqual(controller.normalColor,
MDCTextInputControllerLegacyFullWidth.normalColorDefault)
XCTAssertEqual(controller.underlineViewMode,
MDCTextInputControllerLegacyFullWidth.underlineViewModeDefault)
XCTAssertEqual(controller.leadingUnderlineLabelTextColor,
MDCTextInputControllerLegacyFullWidth.leadingUnderlineLabelTextColorDefault)
XCTAssertEqual(controller.trailingUnderlineLabelTextColor,
MDCTextInputControllerLegacyFullWidth.trailingUnderlineLabelTextColorDefault)
}
}