blob: 15aec7e61dbaa92dabf2b3e6bb2c387e60445d75 [file] [log] [blame] [edit]
// Copyright 2019-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.
#import <XCTest/XCTest.h>
#import "MaterialPalettes.h"
static UIColor *ColorFromRGB(uint32_t colorValue) {
return [UIColor colorWithRed:(CGFloat)(((colorValue >> 16) & 0xFF) / 255.0)
green:(CGFloat)(((colorValue >> 8) & 0xFF) / 255.0)
blue:(CGFloat)((colorValue & 0xFF) / 255.0)
alpha:1];
}
@interface PaletteTests : XCTestCase
@end
@implementation PaletteTests
- (void)testBasics {
UIColor *color = MDCPalette.redPalette.tint50;
XCTAssertEqualObjects(color, ColorFromRGB(0xFFEBEE));
}
- (void)testCaching {
MDCPalette *first = MDCPalette.redPalette;
MDCPalette *second = MDCPalette.redPalette;
XCTAssertTrue(first == second);
}
- (void)testAccentlessPalette {
MDCPalette *brownPalette = MDCPalette.brownPalette;
XCTAssertNil(brownPalette.accent100);
}
- (void)testGeneratedPalette {
MDCPalette *palette = [MDCPalette paletteGeneratedFromColor:[UIColor colorWithRed:(CGFloat)1
green:(CGFloat)0
blue:(CGFloat)0
alpha:(CGFloat)1]];
XCTAssertNotNil(palette.tint50);
XCTAssertNotNil(palette.tint100);
XCTAssertNotNil(palette.tint200);
XCTAssertNotNil(palette.tint300);
XCTAssertNotNil(palette.tint400);
XCTAssertNotNil(palette.tint500);
XCTAssertNotNil(palette.tint600);
XCTAssertNotNil(palette.tint700);
XCTAssertNotNil(palette.tint800);
XCTAssertNotNil(palette.tint900);
XCTAssertNotNil(palette.accent100);
XCTAssertNotNil(palette.accent200);
XCTAssertNotNil(palette.accent400);
XCTAssertNotNil(palette.accent700);
}
- (void)testCustomPalette {
NSDictionary<MDCPaletteTint, UIColor *> *tints = @{
MDCPaletteTint50Name : [UIColor colorWithWhite:(CGFloat)0 alpha:(CGFloat)1],
MDCPaletteTint100Name : [UIColor colorWithWhite:(CGFloat)0.1 alpha:(CGFloat)1],
MDCPaletteTint200Name : [UIColor colorWithWhite:(CGFloat)0.2 alpha:(CGFloat)1],
MDCPaletteTint300Name : [UIColor colorWithWhite:(CGFloat)0.3 alpha:(CGFloat)1],
MDCPaletteTint400Name : [UIColor colorWithWhite:(CGFloat)0.4 alpha:(CGFloat)1],
MDCPaletteTint500Name : [UIColor colorWithWhite:(CGFloat)0.5 alpha:(CGFloat)1],
MDCPaletteTint600Name : [UIColor colorWithWhite:(CGFloat)0.6 alpha:(CGFloat)1],
MDCPaletteTint700Name : [UIColor colorWithWhite:(CGFloat)0.7 alpha:(CGFloat)1],
MDCPaletteTint800Name : [UIColor colorWithWhite:(CGFloat)0.8 alpha:(CGFloat)1],
MDCPaletteTint900Name : [UIColor colorWithWhite:(CGFloat)0.9 alpha:(CGFloat)1],
};
NSDictionary<MDCPaletteAccent, UIColor *> *accents = @{
MDCPaletteAccent100Name : [UIColor colorWithWhite:(CGFloat)1 alpha:(CGFloat)0],
MDCPaletteAccent200Name : [UIColor colorWithWhite:(CGFloat)1 alpha:(CGFloat)0.25],
MDCPaletteAccent400Name : [UIColor colorWithWhite:(CGFloat)1 alpha:(CGFloat)0.75],
MDCPaletteAccent700Name : [UIColor colorWithWhite:(CGFloat)1 alpha:(CGFloat)1],
};
MDCPalette *palette = [MDCPalette paletteWithTints:tints accents:accents];
XCTAssertEqual(palette.tint50, tints[MDCPaletteTint50Name]);
XCTAssertEqual(palette.tint100, tints[MDCPaletteTint100Name]);
XCTAssertEqual(palette.tint200, tints[MDCPaletteTint200Name]);
XCTAssertEqual(palette.tint300, tints[MDCPaletteTint300Name]);
XCTAssertEqual(palette.tint400, tints[MDCPaletteTint400Name]);
XCTAssertEqual(palette.tint500, tints[MDCPaletteTint500Name]);
XCTAssertEqual(palette.tint600, tints[MDCPaletteTint600Name]);
XCTAssertEqual(palette.tint700, tints[MDCPaletteTint700Name]);
XCTAssertEqual(palette.tint800, tints[MDCPaletteTint800Name]);
XCTAssertEqual(palette.tint900, tints[MDCPaletteTint900Name]);
XCTAssertEqual(palette.accent100, accents[MDCPaletteAccent100Name]);
XCTAssertEqual(palette.accent200, accents[MDCPaletteAccent200Name]);
XCTAssertEqual(palette.accent400, accents[MDCPaletteAccent400Name]);
XCTAssertEqual(palette.accent700, accents[MDCPaletteAccent700Name]);
}
@end