@@ -294,6 +294,91 @@ - (void)testTrackColorNullRestable {
294
294
XCTAssertEqualObjects (actualColor, expectedColor);
295
295
}
296
296
297
+ #pragma mark accessibility
298
+
299
+ - (void )testAccessibilityValue {
300
+ // Given
301
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
302
+ CGFloat newValue = [self randomPercent ];
303
+
304
+ // When
305
+ slider.value = newValue;
306
+
307
+ // Then
308
+ NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc ] init ];
309
+ numberFormatter.numberStyle = NSNumberFormatterPercentStyle;
310
+ NSString *expected = [numberFormatter stringFromNumber: [NSNumber numberWithFloat: slider.value]];
311
+ XCTAssertEqualObjects ([slider accessibilityValue ], expected);
312
+ }
313
+
314
+ - (void )testAccessibilityValueWithLargerMax {
315
+ // Given
316
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
317
+ slider.maximumValue = [self randomNumber ];
318
+ CGFloat newValue = [self randomPercent ];
319
+
320
+ // When
321
+ slider.value = newValue;
322
+
323
+ // Then
324
+ NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc ] init ];
325
+ numberFormatter.numberStyle = NSNumberFormatterPercentStyle;
326
+ CGFloat percent = (slider.value - slider.minimumValue ) / (slider.maximumValue - slider.minimumValue );
327
+ NSString *expected = [numberFormatter stringFromNumber: [NSNumber numberWithFloat: percent]];
328
+ XCTAssertEqualObjects ([slider accessibilityValue ], expected);
329
+ }
330
+
331
+ - (void )testAccessibilityIncrement {
332
+ // Given
333
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
334
+ slider.value = [self randomPercent ] - 0 .1f ;
335
+ CGFloat originalValue = slider.value ;
336
+
337
+ // When
338
+ [slider accessibilityIncrement ];
339
+
340
+ // Then
341
+ XCTAssertEqual (originalValue + 0 .1f , slider.value );
342
+ }
343
+
344
+ - (void )testAccessibilityDecrement {
345
+ // Given
346
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
347
+ slider.value = [self randomPercent ] + 0 .1f ;
348
+ CGFloat originalValue = slider.value ;
349
+
350
+ // When
351
+ [slider accessibilityDecrement ];
352
+
353
+ // Then
354
+ XCTAssertEqual (originalValue - 0 .1f , slider.value );
355
+ }
356
+
357
+ - (void )testAccessibilityIncrementWithLargerMax {
358
+ // Given
359
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
360
+ slider.maximumValue = [self randomNumber ];
361
+ slider.value = ([self randomPercent ] - 0 .1f ) * slider.maximumValue ;
362
+ CGFloat originalValue = slider.value ;
363
+
364
+ // When
365
+ [slider accessibilityIncrement ];
366
+
367
+ // Then
368
+ XCTAssertEqual (originalValue + 0 .1f * slider.maximumValue , slider.value );
369
+ }
370
+
371
+ - (void )testAccessibilityTraits {
372
+ // Given
373
+ MDCSlider *slider = [[MDCSlider alloc ] init ];
374
+ slider.enabled = arc4random_uniform (2 ); // It does not matter if the slider is enabled or disabled.
375
+
376
+ // When
377
+
378
+ // Then
379
+ XCTAssertTrue (slider.accessibilityTraits & UIAccessibilityTraitAdjustable);
380
+ }
381
+
297
382
#pragma mark private test helpers
298
383
299
384
- (UIColor *)blueColor {
@@ -305,7 +390,7 @@ - (CGFloat)randomNumber {
305
390
}
306
391
307
392
- (CGFloat)randomPercent {
308
- return 1 / (CGFloat)(arc4random_uniform (999 ) + 1 ) ;
393
+ return (CGFloat)(arc4random_uniform (1001 )) / 1000 ;
309
394
}
310
395
311
396
@end
0 commit comments