@@ -26,67 +26,66 @@ @interface MDCActivityIndicator (Private)
2626@end
2727
2828@interface ActivityIndicatorTests : XCTestCase
29-
29+ @property ( nonatomic , strong , nullable ) MDCActivityIndicator *indicator;
3030@end
3131
3232@implementation ActivityIndicatorTests
3333
34- - (void )testSetRadiusMin {
35- // Given
36- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
34+ - (void )setUp {
35+ [super setUp ];
36+
37+ self.indicator = [[MDCActivityIndicator alloc ] init ];
38+ }
39+
40+ - (void )tearDown {
41+ self.indicator = nil ;
3742
43+ [super tearDown ];
44+ }
45+
46+ - (void )testSetRadiusMin {
3847 // When
39- indicator.radius = 2 ;
48+ self. indicator .radius = 2 ;
4049
4150 // Then
42- XCTAssertGreaterThanOrEqual (indicator.radius , 5 );
51+ XCTAssertGreaterThanOrEqual (self. indicator .radius , 5 );
4352}
4453
4554- (void )testSetRadius {
46- // Given
47- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
48-
4955 // When
5056 CGFloat random = randomNumber ();
51- indicator.radius = random;
57+ self. indicator .radius = random;
5258
5359 // Then
54- XCTAssertGreaterThanOrEqual (indicator.radius , 8 );
55- XCTAssertEqual (indicator.radius , random);
60+ XCTAssertGreaterThanOrEqual (self. indicator .radius , 8 );
61+ XCTAssertEqual (self. indicator .radius , random);
5662}
5763
5864- (void )testDefaultColorCycle {
59- // Given
60- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
61-
6265 // Then
63- XCTAssertGreaterThan (indicator.cycleColors .count , 0U ,
66+ XCTAssertGreaterThan (self. indicator .cycleColors .count , 0U ,
6467 @" The default value for |cycleColors| should be a non-empty array." );
6568}
6669
6770- (void )testSetCycleColorsEmptyReturnsDefault {
68- // Given
69- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
70-
7171 // When
72- indicator.cycleColors = @[];
72+ self. indicator .cycleColors = @[];
7373
7474 // Then
75- XCTAssertGreaterThan (indicator.cycleColors .count , 0U ,
75+ XCTAssertGreaterThan (self. indicator .cycleColors .count , 0U ,
7676 @" Assigning an empty array for |cycleColors| should result in a default"
7777 " value being used instead." );
7878}
7979
8080- (void )testSetCycleColorNonEmpty {
8181 // Given
82- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
8382 NSArray <UIColor *> *cycleColors = @[ [UIColor redColor ], [UIColor whiteColor ] ];
8483
8584 // When
86- indicator.cycleColors = cycleColors;
85+ self. indicator .cycleColors = cycleColors;
8786
8887 // Then
89- XCTAssertEqualObjects (indicator.cycleColors , cycleColors,
88+ XCTAssertEqualObjects (self. indicator .cycleColors , cycleColors,
9089 @" With a non-empty array, the |cycleColors| property should override the"
9190 " default value." );
9291}
@@ -95,72 +94,65 @@ - (void)testSetProgressValue {
9594 // Make sure that setting progress with or without animation work regardless of whether indicator
9695 // mode is determinate or indeterminate, and make sure that setting progress value doesn't change
9796 // the mode.
98- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
99-
100- indicator.indicatorMode = MDCActivityIndicatorModeDeterminate;
101- [self verifySettingProgressOnIndicator: indicator animated: NO ];
102- [self verifySettingProgressOnIndicator: indicator animated: YES ];
103- XCTAssertEqual (indicator.indicatorMode , MDCActivityIndicatorModeDeterminate);
104-
105- indicator.indicatorMode = MDCActivityIndicatorModeIndeterminate;
106- [self verifySettingProgressOnIndicator: indicator animated: NO ];
107- [self verifySettingProgressOnIndicator: indicator animated: YES ];
108- XCTAssertEqual (indicator.indicatorMode , MDCActivityIndicatorModeIndeterminate);
97+ self.indicator .indicatorMode = MDCActivityIndicatorModeDeterminate;
98+ [self verifySettingProgressOnIndicator: self .indicator animated: NO ];
99+ [self verifySettingProgressOnIndicator: self .indicator animated: YES ];
100+ XCTAssertEqual (self.indicator .indicatorMode , MDCActivityIndicatorModeDeterminate);
101+
102+ self.indicator .indicatorMode = MDCActivityIndicatorModeIndeterminate;
103+ [self verifySettingProgressOnIndicator: self .indicator animated: NO ];
104+ [self verifySettingProgressOnIndicator: self .indicator animated: YES ];
105+ XCTAssertEqual (self.indicator .indicatorMode , MDCActivityIndicatorModeIndeterminate);
109106}
110107
111108- (void )testSetProgressStrokeNonanimated {
112109 // Make sure that the stroke layer updates accordingly when we set determinate progress.
113- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
114- indicator.indicatorMode = MDCActivityIndicatorModeDeterminate;
110+ self.indicator .indicatorMode = MDCActivityIndicatorModeDeterminate;
115111
116- [indicator setProgress: (float )0.33 animated: NO ];
117- XCTAssertEqual (indicator.strokeLayer .strokeStart , 0.0 );
118- XCTAssertEqual (indicator.strokeLayer .strokeEnd , (float )0.33 );
112+ [self . indicator setProgress: (float )0.33 animated: NO ];
113+ XCTAssertEqual (self. indicator .strokeLayer .strokeStart , 0.0 );
114+ XCTAssertEqual (self. indicator .strokeLayer .strokeEnd , (float )0.33 );
119115}
120116
121117- (void )testSetProgressStrokeAnimated {
122118 // Make sure that the stroke layer updates accordingly when we set determinate progress.
123- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
124- indicator.indicatorMode = MDCActivityIndicatorModeDeterminate;
125- [indicator startAnimating ];
119+ self.indicator .indicatorMode = MDCActivityIndicatorModeDeterminate;
120+ [self .indicator startAnimating ];
126121
127- [indicator setProgress: (float )0.55 animated: YES ];
128- XCTAssertEqual (indicator.strokeLayer .strokeStart , 0.0 );
129- XCTAssertEqual (indicator.strokeLayer .strokeEnd , (float )0.55 );
122+ [self . indicator setProgress: (float )0.55 animated: YES ];
123+ XCTAssertEqual (self. indicator .strokeLayer .strokeStart , 0.0 );
124+ XCTAssertEqual (self. indicator .strokeLayer .strokeEnd , (float )0.55 );
130125}
131126
132127- (void )testSetAccessibiltyLabelProperty {
133128 // Given
134- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
135129 NSString *testString = @" test this label" ;
136130
137131 // When
138- indicator.accessibilityLabel = testString;
132+ self. indicator .accessibilityLabel = testString;
139133
140134 // Then
141- XCTAssertEqualObjects (indicator.accessibilityLabel , testString);
135+ XCTAssertEqualObjects (self. indicator .accessibilityLabel , testString);
142136}
143137
144138- (void )testStopsAnimatingWhenHidden {
145139 // Given
146- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
147- [indicator startAnimating ];
140+ [self .indicator startAnimating ];
148141
149142 // When
150- indicator.hidden = YES ;
143+ self. indicator .hidden = YES ;
151144
152145 // Then
153- XCTAssertFalse (indicator.animating );
146+ XCTAssertFalse (self. indicator .animating );
154147}
155148
156149- (void )testTraitCollectionDidChangeBlockCalledWithExpectedParameters {
157150 // Given
158- MDCActivityIndicator *activityIndicator = [[MDCActivityIndicator alloc ] init ];
159151 XCTestExpectation *expectation =
160152 [[XCTestExpectation alloc ] initWithDescription: @" traitCollectionDidChange" ];
161153 __block UITraitCollection *passedTraitCollection;
162154 __block MDCActivityIndicator *passedActivityIndicator;
163- activityIndicator .traitCollectionDidChangeBlock =
155+ self. indicator .traitCollectionDidChangeBlock =
164156 ^(MDCActivityIndicator *_Nonnull indicator,
165157 UITraitCollection *_Nullable previousTraitCollection) {
166158 [expectation fulfill ];
@@ -170,12 +162,60 @@ - (void)testTraitCollectionDidChangeBlockCalledWithExpectedParameters {
170162 UITraitCollection *testTraitCollection = [UITraitCollection traitCollectionWithDisplayScale: 7 ];
171163
172164 // When
173- [activityIndicator traitCollectionDidChange: testTraitCollection];
165+ [self .indicator traitCollectionDidChange: testTraitCollection];
174166
175167 // Then
176168 [self waitForExpectations: @[ expectation ] timeout: 1 ];
177169 XCTAssertEqual (passedTraitCollection, testTraitCollection);
178- XCTAssertEqual (passedActivityIndicator, activityIndicator);
170+ XCTAssertEqual (passedActivityIndicator, self.indicator );
171+ }
172+
173+ - (void )testTrackEnabledDefaultsToNo {
174+ // Then
175+ XCTAssertFalse (self.indicator .trackEnabled );
176+ }
177+
178+ - (void )testTrackEnabledUpdatesWhenSet {
179+ // When
180+ self.indicator .trackEnabled = YES ;
181+
182+ // Then
183+ XCTAssertTrue (self.indicator .trackEnabled );
184+ }
185+
186+ - (void )testDefaultStrokeWidth {
187+ // Then
188+ XCTAssertEqualWithAccuracy (self.indicator .strokeWidth , 2.5 , 0.001 );
189+ }
190+
191+ - (void )testSetStrokeWidthToCustomValue {
192+ // Given
193+ CGFloat expectedWidth = 5 ;
194+
195+ // When
196+ self.indicator .strokeWidth = expectedWidth;
197+
198+ // Then
199+ XCTAssertEqualWithAccuracy (self.indicator .strokeWidth , expectedWidth, 0.001 );
200+ }
201+
202+ - (void )testDefaultAccessibilityTraits {
203+ // Then
204+ XCTAssertEqual (self.indicator .accessibilityTraits , UIAccessibilityTraitUpdatesFrequently);
205+ }
206+
207+ - (void )testAccessibilityElementWhenAnimating {
208+ // When
209+ self.indicator .animating = YES ;
210+
211+ // Then
212+ XCTAssertTrue (self.indicator .isAccessibilityElement );
213+ }
214+
215+ - (void )testDefaultIsAccessibilityElement {
216+ // Then
217+ XCTAssertFalse (self.indicator .animating );
218+ XCTAssertFalse (self.indicator .isAccessibilityElement );
179219}
180220
181221#pragma mark - Helpers
0 commit comments