Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit e4afa28

Browse files
committed
renderer tests
1 parent 735304d commit e4afa28

File tree

1 file changed

+33
-11
lines changed

1 file changed

+33
-11
lines changed

shell/platform/darwin/macos/framework/Source/FlutterRendererTest.mm

Lines changed: 33 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
#include "flutter/shell/platform/embedder/test_utils/proc_table_replacement.h"
1515
#include "flutter/testing/testing.h"
1616

17-
#if 0
18-
1917
namespace flutter::testing {
2018

2119
namespace {
@@ -39,28 +37,52 @@ void SetEngineDefaultView(FlutterEngine* engine, id flutterView) {
3937
TEST(FlutterRenderer, PresentDelegatesToFlutterView) {
4038
FlutterEngine* engine = CreateTestEngine();
4139
FlutterRenderer* renderer = [[FlutterRenderer alloc] initWithFlutterEngine:engine];
42-
id mockFlutterView = OCMClassMock([FlutterView class]);
43-
SetEngineDefaultView(engine, mockFlutterView);
44-
[(FlutterView*)[mockFlutterView expect] present];
45-
[renderer present:kFlutterDefaultViewId];
40+
41+
id viewMock = OCMClassMock([FlutterView class]);
42+
SetEngineDefaultView(engine, viewMock);
43+
44+
id surfaceManagerMock = OCMClassMock([FlutterSurfaceManager class]);
45+
OCMStub([viewMock surfaceManager]).andReturn(surfaceManagerMock);
46+
47+
id surfaceMock = OCMClassMock([FlutterSurface class]);
48+
49+
FlutterMetalTexture texture = {};
50+
51+
OCMStub([surfaceManagerMock lookupSurface:&texture])
52+
.ignoringNonObjectArgs()
53+
.andReturn(surfaceMock);
54+
55+
[[surfaceManagerMock expect] present:[OCMArg checkWithBlock:^(id obj) {
56+
NSArray* array = (NSArray*)obj;
57+
return array.count == 1 ? YES : NO;
58+
}]
59+
notify:nil];
60+
61+
[renderer present:kFlutterDefaultViewId texture:&texture];
62+
[surfaceManagerMock verify];
4663
}
4764

4865
TEST(FlutterRenderer, TextureReturnedByFlutterView) {
4966
FlutterEngine* engine = CreateTestEngine();
5067
FlutterRenderer* renderer = [[FlutterRenderer alloc] initWithFlutterEngine:engine];
51-
id mockFlutterView = OCMClassMock([FlutterView class]);
52-
SetEngineDefaultView(engine, mockFlutterView);
68+
69+
id viewMock = OCMClassMock([FlutterView class]);
70+
SetEngineDefaultView(engine, viewMock);
71+
72+
id surfaceManagerMock = OCMClassMock([FlutterSurfaceManager class]);
73+
OCMStub([viewMock surfaceManager]).andReturn(surfaceManagerMock);
74+
5375
FlutterFrameInfo frameInfo;
5476
frameInfo.struct_size = sizeof(FlutterFrameInfo);
5577
FlutterUIntSize dimensions;
5678
dimensions.width = 100;
5779
dimensions.height = 200;
5880
frameInfo.size = dimensions;
5981
CGSize size = CGSizeMake(dimensions.width, dimensions.height);
60-
[[mockFlutterView expect] backingStoreForSize:size];
82+
83+
[[surfaceManagerMock expect] backBufferForSize:size];
6184
[renderer createTextureForView:kFlutterDefaultViewId size:size];
85+
[surfaceManagerMock verify];
6286
}
6387

6488
} // namespace flutter::testing
65-
66-
#endif

0 commit comments

Comments
 (0)