@@ -26,67 +26,66 @@ @interface MDCActivityIndicator (Private)
26
26
@end
27
27
28
28
@interface ActivityIndicatorTests : XCTestCase
29
-
29
+ @property ( nonatomic , strong , nullable ) MDCActivityIndicator *indicator;
30
30
@end
31
31
32
32
@implementation ActivityIndicatorTests
33
33
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 ;
37
42
43
+ [super tearDown ];
44
+ }
45
+
46
+ - (void )testSetRadiusMin {
38
47
// When
39
- indicator.radius = 2 ;
48
+ self. indicator .radius = 2 ;
40
49
41
50
// Then
42
- XCTAssertGreaterThanOrEqual (indicator.radius , 5 );
51
+ XCTAssertGreaterThanOrEqual (self. indicator .radius , 5 );
43
52
}
44
53
45
54
- (void )testSetRadius {
46
- // Given
47
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
48
-
49
55
// When
50
56
CGFloat random = randomNumber ();
51
- indicator.radius = random;
57
+ self. indicator .radius = random;
52
58
53
59
// Then
54
- XCTAssertGreaterThanOrEqual (indicator.radius , 8 );
55
- XCTAssertEqual (indicator.radius , random);
60
+ XCTAssertGreaterThanOrEqual (self. indicator .radius , 8 );
61
+ XCTAssertEqual (self. indicator .radius , random);
56
62
}
57
63
58
64
- (void )testDefaultColorCycle {
59
- // Given
60
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
61
-
62
65
// Then
63
- XCTAssertGreaterThan (indicator.cycleColors .count , 0U ,
66
+ XCTAssertGreaterThan (self. indicator .cycleColors .count , 0U ,
64
67
@" The default value for |cycleColors| should be a non-empty array." );
65
68
}
66
69
67
70
- (void )testSetCycleColorsEmptyReturnsDefault {
68
- // Given
69
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
70
-
71
71
// When
72
- indicator.cycleColors = @[];
72
+ self. indicator .cycleColors = @[];
73
73
74
74
// Then
75
- XCTAssertGreaterThan (indicator.cycleColors .count , 0U ,
75
+ XCTAssertGreaterThan (self. indicator .cycleColors .count , 0U ,
76
76
@" Assigning an empty array for |cycleColors| should result in a default"
77
77
" value being used instead." );
78
78
}
79
79
80
80
- (void )testSetCycleColorNonEmpty {
81
81
// Given
82
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
83
82
NSArray <UIColor *> *cycleColors = @[ [UIColor redColor ], [UIColor whiteColor ] ];
84
83
85
84
// When
86
- indicator.cycleColors = cycleColors;
85
+ self. indicator .cycleColors = cycleColors;
87
86
88
87
// Then
89
- XCTAssertEqualObjects (indicator.cycleColors , cycleColors,
88
+ XCTAssertEqualObjects (self. indicator .cycleColors , cycleColors,
90
89
@" With a non-empty array, the |cycleColors| property should override the"
91
90
" default value." );
92
91
}
@@ -95,72 +94,65 @@ - (void)testSetProgressValue {
95
94
// Make sure that setting progress with or without animation work regardless of whether indicator
96
95
// mode is determinate or indeterminate, and make sure that setting progress value doesn't change
97
96
// 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);
109
106
}
110
107
111
108
- (void )testSetProgressStrokeNonanimated {
112
109
// 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;
115
111
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 );
119
115
}
120
116
121
117
- (void )testSetProgressStrokeAnimated {
122
118
// 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 ];
126
121
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 );
130
125
}
131
126
132
127
- (void )testSetAccessibiltyLabelProperty {
133
128
// Given
134
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
135
129
NSString *testString = @" test this label" ;
136
130
137
131
// When
138
- indicator.accessibilityLabel = testString;
132
+ self. indicator .accessibilityLabel = testString;
139
133
140
134
// Then
141
- XCTAssertEqualObjects (indicator.accessibilityLabel , testString);
135
+ XCTAssertEqualObjects (self. indicator .accessibilityLabel , testString);
142
136
}
143
137
144
138
- (void )testStopsAnimatingWhenHidden {
145
139
// Given
146
- MDCActivityIndicator *indicator = [[MDCActivityIndicator alloc ] init ];
147
- [indicator startAnimating ];
140
+ [self .indicator startAnimating ];
148
141
149
142
// When
150
- indicator.hidden = YES ;
143
+ self. indicator .hidden = YES ;
151
144
152
145
// Then
153
- XCTAssertFalse (indicator.animating );
146
+ XCTAssertFalse (self. indicator .animating );
154
147
}
155
148
156
149
- (void )testTraitCollectionDidChangeBlockCalledWithExpectedParameters {
157
150
// Given
158
- MDCActivityIndicator *activityIndicator = [[MDCActivityIndicator alloc ] init ];
159
151
XCTestExpectation *expectation =
160
152
[[XCTestExpectation alloc ] initWithDescription: @" traitCollectionDidChange" ];
161
153
__block UITraitCollection *passedTraitCollection;
162
154
__block MDCActivityIndicator *passedActivityIndicator;
163
- activityIndicator .traitCollectionDidChangeBlock =
155
+ self. indicator .traitCollectionDidChangeBlock =
164
156
^(MDCActivityIndicator *_Nonnull indicator,
165
157
UITraitCollection *_Nullable previousTraitCollection) {
166
158
[expectation fulfill ];
@@ -170,12 +162,60 @@ - (void)testTraitCollectionDidChangeBlockCalledWithExpectedParameters {
170
162
UITraitCollection *testTraitCollection = [UITraitCollection traitCollectionWithDisplayScale: 7 ];
171
163
172
164
// When
173
- [activityIndicator traitCollectionDidChange: testTraitCollection];
165
+ [self .indicator traitCollectionDidChange: testTraitCollection];
174
166
175
167
// Then
176
168
[self waitForExpectations: @[ expectation ] timeout: 1 ];
177
169
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 );
179
219
}
180
220
181
221
#pragma mark - Helpers
0 commit comments