Files
MapLibreParticleLab/platform/ios/test/MLNMapAccessibilityElementTests.m
mwilsnd 20d9e1028c Platform flattening overhaul (#1393)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Bart Louwers <bart@emeel.net>
2023-07-26 17:50:34 +02:00

88 lines
3.6 KiB
Objective-C

#import <Mapbox.h>
#import <XCTest/XCTest.h>
#import "../../ios/src/MLNMapAccessibilityElement.h"
@interface MLNMapAccessibilityElementTests : XCTestCase
@end
@implementation MLNMapAccessibilityElementTests
- (void)testFeatureLabels {
MLNPointFeature *feature = [[MLNPointFeature alloc] init];
feature.attributes = @{
@"name": @"Local",
@"name_en": @"English",
@"name_es": @"Spanish",
@"name_fr": @"French",
@"name_tlh": @"Klingon",
};
MLNFeatureAccessibilityElement *element = [[MLNFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:feature];
XCTAssertEqualObjects(element.accessibilityLabel, @"English", @"Accessibility label should be localized.");
feature.attributes = @{
@"name": @"Цинциннати",
@"name_en": @"Цинциннати",
};
element = [[MLNFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:feature];
XCTAssertEqualObjects(element.accessibilityLabel, @"Cincinnati", @"Accessibility label should be romanized.");
}
- (void)testPlaceFeatureValues {
MLNPointFeature *feature = [[MLNPointFeature alloc] init];
feature.attributes = @{
@"type": @"village_green",
};
MLNPlaceFeatureAccessibilityElement *element = [[MLNPlaceFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:feature];
XCTAssertEqualObjects(element.accessibilityValue, @"village green");
feature = [[MLNPointFeature alloc] init];
feature.attributes = @{
@"maki": @"cat",
};
element = [[MLNPlaceFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:feature];
XCTAssertEqualObjects(element.accessibilityValue, @"cat");
feature = [[MLNPointFeature alloc] init];
feature.attributes = @{
@"elevation_ft": @31337,
@"elevation_m": @1337,
};
element = [[MLNPlaceFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:feature];
XCTAssertEqualObjects(element.accessibilityValue, @"31,337 feet");
}
- (void)testRoadFeatureValues {
CLLocationCoordinate2D coordinates[] = {
CLLocationCoordinate2DMake(0, 0),
CLLocationCoordinate2DMake(0, 1),
CLLocationCoordinate2DMake(1, 2),
CLLocationCoordinate2DMake(2, 2),
};
MLNPolylineFeature *roadFeature = [MLNPolylineFeature polylineWithCoordinates:coordinates count:sizeof(coordinates) / sizeof(coordinates[0])];
roadFeature.attributes = @{
@"ref": @"42",
@"oneway": @"true",
};
MLNRoadFeatureAccessibilityElement *element = [[MLNRoadFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:roadFeature];
XCTAssertEqualObjects(element.accessibilityValue, @"Route 42, One way, southwest to northeast");
CLLocationCoordinate2D opposingCoordinates[] = {
CLLocationCoordinate2DMake(2, 1),
CLLocationCoordinate2DMake(1, 0),
};
MLNPolylineFeature *opposingRoadFeature = [MLNPolylineFeature polylineWithCoordinates:opposingCoordinates count:sizeof(opposingCoordinates) / sizeof(opposingCoordinates[0])];
opposingRoadFeature.attributes = @{
@"ref": @"42",
@"oneway": @"true",
};
MLNMultiPolylineFeature *dividedRoadFeature = [MLNMultiPolylineFeature multiPolylineWithPolylines:@[roadFeature, opposingRoadFeature]];
dividedRoadFeature.attributes = @{
@"ref": @"42",
};
element = [[MLNRoadFeatureAccessibilityElement alloc] initWithAccessibilityContainer:self feature:dividedRoadFeature];
XCTAssertEqualObjects(element.accessibilityValue, @"Route 42, Divided road, southwest to northeast");
}
@end