forked from flutter/flutter
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ios_platform_images] Add extension tests (flutter#4925)
Adds test coverage of the UIImage class extension that allows native code to load Flutter assets by name.
- Loading branch information
1 parent
adf7adf
commit aa46622
Showing
6 changed files
with
78 additions
and
6 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
43 changes: 43 additions & 0 deletions
43
packages/ios_platform_images/example/ios/RunnerTests/UIImage+ios_platform_imagesTests.m
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
// Copyright 2013 The Flutter Authors. All rights reserved. | ||
// Use of this source code is governed by a BSD-style license that can be | ||
// found in the LICENSE file. | ||
|
||
@import ios_platform_images; | ||
@import XCTest; | ||
|
||
// The tests test the UIImage extension which is a public API intended for use from native code | ||
// outside of the plugin (see package README). Any change that requires changing existing tests | ||
// in this file (unless it's just to reflect changes to the test assets) is a BREAKING CHANGE for | ||
// the package. | ||
@interface UIImageExtensionTests : XCTestCase | ||
@end | ||
|
||
@implementation UIImageExtensionTests | ||
|
||
- (void)testMultiResolutionImageUsesBest { | ||
UIImage *image = [UIImage flutterImageWithName:@"assets/multisize.png"]; | ||
XCTAssertNotNil(image); | ||
const double height1x = 125; // The height of assets/multisize.png. | ||
const double height2x = 250; // The height of assets/2.0x/multisize.png. | ||
// Loading assets should get the best available asset for the screen scale when resolution-aware | ||
// assets are available (and the example app has 1x and 2x for this asset). See | ||
// https://docs.flutter.dev/ui/assets/assets-and-images#resolution-aware | ||
if (UIScreen.mainScreen.scale > 1.0) { | ||
XCTAssertEqualWithAccuracy(image.size.height, height2x, 0.00001); | ||
} else { | ||
XCTAssertEqualWithAccuracy(image.size.height, height1x, 0.00001); | ||
} | ||
} | ||
|
||
- (void)testSingleResolutionFindsImage { | ||
// When there is no resolution-aware asset, the main asset should be used. | ||
UIImage *image = [UIImage flutterImageWithName:@"assets/monosize.png"]; | ||
XCTAssertNotNil(image); | ||
} | ||
|
||
- (void)testMissingImageReturnsNil { | ||
UIImage *image = [UIImage flutterImageWithName:@"assets/no_such_image.png"]; | ||
XCTAssertNil(image); | ||
} | ||
|
||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,4 +25,6 @@ dev_dependencies: | |
sdk: flutter | ||
|
||
flutter: | ||
assets: | ||
- assets/ | ||
uses-material-design: true |