xref: /aosp_15_r20/external/webrtc/sdk/objc/unittests/RTCEncodedImage_xctest.mm (revision d9f758449e529ab9291ac668be2861e7a55c2422)
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