MetaDataUtilTests.m
3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
// 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 "ImagePickerTestImages.h"
@import image_picker_ios;
@import image_picker_ios.Test;
@import XCTest;
@interface MetaDataUtilTests : XCTestCase
@end
@implementation MetaDataUtilTests
- (void)testGetImageMIMETypeFromImageData {
// test jpeg
XCTAssertEqual(
[FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:ImagePickerTestImages.JPGTestData],
FLTImagePickerMIMETypeJPEG);
// test png
XCTAssertEqual(
[FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:ImagePickerTestImages.PNGTestData],
FLTImagePickerMIMETypePNG);
// test gif
XCTAssertEqual(
[FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:ImagePickerTestImages.GIFTestData],
FLTImagePickerMIMETypeGIF);
}
- (void)testSuffixFromType {
// test jpeg
XCTAssertEqualObjects(
[FLTImagePickerMetaDataUtil imageTypeSuffixFromType:FLTImagePickerMIMETypeJPEG], @".jpg");
// test png
XCTAssertEqualObjects(
[FLTImagePickerMetaDataUtil imageTypeSuffixFromType:FLTImagePickerMIMETypePNG], @".png");
// test gif
XCTAssertEqualObjects(
[FLTImagePickerMetaDataUtil imageTypeSuffixFromType:FLTImagePickerMIMETypeGIF], @".gif");
// test other
XCTAssertNil([FLTImagePickerMetaDataUtil imageTypeSuffixFromType:FLTImagePickerMIMETypeOther]);
}
- (void)testGetMetaData {
NSDictionary *metaData =
[FLTImagePickerMetaDataUtil getMetaDataFromImageData:ImagePickerTestImages.JPGTestData];
NSDictionary *exif = [metaData objectForKey:(__bridge NSString *)kCGImagePropertyExifDictionary];
XCTAssertEqual([exif[(__bridge NSString *)kCGImagePropertyExifPixelXDimension] integerValue], 12);
}
- (void)testWriteMetaData {
NSData *dataJPG = ImagePickerTestImages.JPGTestData;
NSDictionary *metaData = [FLTImagePickerMetaDataUtil getMetaDataFromImageData:dataJPG];
NSString *tmpFile = [NSString stringWithFormat:@"image_picker_test.jpg"];
NSString *tmpDirectory = NSTemporaryDirectory();
NSString *tmpPath = [tmpDirectory stringByAppendingPathComponent:tmpFile];
NSData *newData = [FLTImagePickerMetaDataUtil imageFromImage:dataJPG withMetaData:metaData];
if ([[NSFileManager defaultManager] createFileAtPath:tmpPath contents:newData attributes:nil]) {
NSData *savedTmpImageData = [NSData dataWithContentsOfFile:tmpPath];
NSDictionary *tmpMetaData =
[FLTImagePickerMetaDataUtil getMetaDataFromImageData:savedTmpImageData];
XCTAssert([tmpMetaData isEqualToDictionary:metaData]);
} else {
XCTAssert(NO);
}
}
- (void)testUpdateMetaDataBadData {
NSData *imageData = [NSData data];
NSDictionary *metaData = [FLTImagePickerMetaDataUtil getMetaDataFromImageData:imageData];
NSData *newData = [FLTImagePickerMetaDataUtil imageFromImage:imageData withMetaData:metaData];
XCTAssertNil(newData);
}
- (void)testConvertImageToData {
UIImage *imageJPG = [UIImage imageWithData:ImagePickerTestImages.JPGTestData];
NSData *convertedDataJPG = [FLTImagePickerMetaDataUtil convertImage:imageJPG
usingType:FLTImagePickerMIMETypeJPEG
quality:@(0.5)];
XCTAssertEqual([FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:convertedDataJPG],
FLTImagePickerMIMETypeJPEG);
NSData *convertedDataPNG = [FLTImagePickerMetaDataUtil convertImage:imageJPG
usingType:FLTImagePickerMIMETypePNG
quality:nil];
XCTAssertEqual([FLTImagePickerMetaDataUtil getImageMIMETypeFromImageData:convertedDataPNG],
FLTImagePickerMIMETypePNG);
}
@end