1*d9f75844SAndroid Build Coastguard Worker/* 2*d9f75844SAndroid Build Coastguard Worker * Copyright 2020 The WebRTC project authors. All Rights Reserved. 3*d9f75844SAndroid Build Coastguard Worker * 4*d9f75844SAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license 5*d9f75844SAndroid Build Coastguard Worker * that can be found in the LICENSE file in the root of the source 6*d9f75844SAndroid Build Coastguard Worker * tree. An additional intellectual property rights grant can be found 7*d9f75844SAndroid Build Coastguard Worker * in the file PATENTS. All contributing project authors may 8*d9f75844SAndroid Build Coastguard Worker * be found in the AUTHORS file in the root of the source tree. 9*d9f75844SAndroid Build Coastguard Worker */ 10*d9f75844SAndroid Build Coastguard Worker 11*d9f75844SAndroid Build Coastguard Worker#import "api/peerconnection/RTCEncodedImage+Private.h" 12*d9f75844SAndroid Build Coastguard Worker 13*d9f75844SAndroid Build Coastguard Worker#import <XCTest/XCTest.h> 14*d9f75844SAndroid Build Coastguard Worker 15*d9f75844SAndroid Build Coastguard Worker@interface RTCEncodedImageTests : XCTestCase 16*d9f75844SAndroid Build Coastguard Worker@end 17*d9f75844SAndroid Build Coastguard Worker 18*d9f75844SAndroid Build Coastguard Worker@implementation RTCEncodedImageTests 19*d9f75844SAndroid Build Coastguard Worker 20*d9f75844SAndroid Build Coastguard Worker- (void)testInitializedWithNativeEncodedImage { 21*d9f75844SAndroid Build Coastguard Worker const auto encoded_data = webrtc::EncodedImageBuffer::Create(); 22*d9f75844SAndroid Build Coastguard Worker webrtc::EncodedImage encoded_image; 23*d9f75844SAndroid Build Coastguard Worker encoded_image.SetEncodedData(encoded_data); 24*d9f75844SAndroid Build Coastguard Worker 25*d9f75844SAndroid Build Coastguard Worker RTC_OBJC_TYPE(RTCEncodedImage) *encodedImage = 26*d9f75844SAndroid Build Coastguard Worker [[RTC_OBJC_TYPE(RTCEncodedImage) alloc] initWithNativeEncodedImage:encoded_image]; 27*d9f75844SAndroid Build Coastguard Worker 28*d9f75844SAndroid Build Coastguard Worker XCTAssertEqual([encodedImage nativeEncodedImage].GetEncodedData(), encoded_data); 29*d9f75844SAndroid Build Coastguard Worker} 30*d9f75844SAndroid Build Coastguard Worker 31*d9f75844SAndroid Build Coastguard Worker- (void)testInitWithNSData { 32*d9f75844SAndroid Build Coastguard Worker NSData *bufferData = [NSData data]; 33*d9f75844SAndroid Build Coastguard Worker RTC_OBJC_TYPE(RTCEncodedImage) *encodedImage = [[RTC_OBJC_TYPE(RTCEncodedImage) alloc] init]; 34*d9f75844SAndroid Build Coastguard Worker encodedImage.buffer = bufferData; 35*d9f75844SAndroid Build Coastguard Worker 36*d9f75844SAndroid Build Coastguard Worker webrtc::EncodedImage result_encoded_image = [encodedImage nativeEncodedImage]; 37*d9f75844SAndroid Build Coastguard Worker XCTAssertTrue(result_encoded_image.GetEncodedData() != nullptr); 38*d9f75844SAndroid Build Coastguard Worker XCTAssertEqual(result_encoded_image.GetEncodedData()->data(), bufferData.bytes); 39*d9f75844SAndroid Build Coastguard Worker} 40*d9f75844SAndroid Build Coastguard Worker 41*d9f75844SAndroid Build Coastguard Worker- (void)testRetainsNativeEncodedImage { 42*d9f75844SAndroid Build Coastguard Worker RTC_OBJC_TYPE(RTCEncodedImage) * encodedImage; 43*d9f75844SAndroid Build Coastguard Worker { 44*d9f75844SAndroid Build Coastguard Worker const auto encoded_data = webrtc::EncodedImageBuffer::Create(); 45*d9f75844SAndroid Build Coastguard Worker webrtc::EncodedImage encoded_image; 46*d9f75844SAndroid Build Coastguard Worker encoded_image.SetEncodedData(encoded_data); 47*d9f75844SAndroid Build Coastguard Worker encodedImage = 48*d9f75844SAndroid Build Coastguard Worker [[RTC_OBJC_TYPE(RTCEncodedImage) alloc] initWithNativeEncodedImage:encoded_image]; 49*d9f75844SAndroid Build Coastguard Worker } 50*d9f75844SAndroid Build Coastguard Worker webrtc::EncodedImage result_encoded_image = [encodedImage nativeEncodedImage]; 51*d9f75844SAndroid Build Coastguard Worker XCTAssertTrue(result_encoded_image.GetEncodedData() != nullptr); 52*d9f75844SAndroid Build Coastguard Worker XCTAssertTrue(result_encoded_image.GetEncodedData()->data() != nullptr); 53*d9f75844SAndroid Build Coastguard Worker} 54*d9f75844SAndroid Build Coastguard Worker 55*d9f75844SAndroid Build Coastguard Worker@end 56