5
5
#include " flutter/fml/raster_thread_merger.h"
6
6
#include " flutter/fml/thread.h"
7
7
#include " flutter/shell/platform/android/external_view_embedder/external_view_embedder.h"
8
+ #include " flutter/shell/platform/android/jni/mock_jni.h"
9
+ #include " gmock/gmock.h"
8
10
#include " gtest/gtest.h"
9
11
10
12
namespace flutter {
11
13
namespace testing {
12
14
15
+ using ::testing::Mock;
16
+
13
17
TEST (AndroidExternalViewEmbedder, GetCurrentCanvases) {
14
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
18
+ auto mock_jni = std::make_shared<MockJNI>();
19
+
20
+ EXPECT_CALL (*mock_jni, FlutterViewBeginFrame ());
15
21
22
+ auto embedder =
23
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
16
24
embedder->BeginFrame (SkISize::Make (10 , 20 ), nullptr , 1.0 );
17
25
18
26
embedder->PrerollCompositeEmbeddedView (
@@ -26,8 +34,28 @@ TEST(AndroidExternalViewEmbedder, GetCurrentCanvases) {
26
34
ASSERT_EQ (SkISize::Make (10 , 20 ), canvases[1 ]->getBaseLayerSize ());
27
35
}
28
36
37
+ TEST (AndroidExternalViewEmbedder, GetCurrentCanvases__CompositeOrder) {
38
+ auto mock_jni = std::make_shared<MockJNI>();
39
+ EXPECT_CALL (*mock_jni, FlutterViewBeginFrame ());
40
+
41
+ auto embedder =
42
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
43
+ embedder->BeginFrame (SkISize::Make (10 , 20 ), nullptr , 1.0 );
44
+
45
+ embedder->PrerollCompositeEmbeddedView (
46
+ 0 , std::make_unique<EmbeddedViewParams>());
47
+ embedder->PrerollCompositeEmbeddedView (
48
+ 1 , std::make_unique<EmbeddedViewParams>());
49
+
50
+ auto canvases = embedder->GetCurrentCanvases ();
51
+ ASSERT_EQ (2UL , canvases.size ());
52
+ ASSERT_EQ (embedder->CompositeEmbeddedView (0 ), canvases[0 ]);
53
+ ASSERT_EQ (embedder->CompositeEmbeddedView (1 ), canvases[1 ]);
54
+ }
55
+
29
56
TEST (AndroidExternalViewEmbedder, CompositeEmbeddedView) {
30
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
57
+ auto embedder =
58
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , nullptr , nullptr );
31
59
32
60
ASSERT_EQ (nullptr , embedder->CompositeEmbeddedView (0 ));
33
61
embedder->PrerollCompositeEmbeddedView (
@@ -41,7 +69,8 @@ TEST(AndroidExternalViewEmbedder, CompositeEmbeddedView) {
41
69
}
42
70
43
71
TEST (AndroidExternalViewEmbedder, CancelFrame) {
44
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
72
+ auto embedder =
73
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , nullptr , nullptr );
45
74
46
75
embedder->PrerollCompositeEmbeddedView (
47
76
0 , std::make_unique<EmbeddedViewParams>());
@@ -52,7 +81,12 @@ TEST(AndroidExternalViewEmbedder, CancelFrame) {
52
81
}
53
82
54
83
TEST (AndroidExternalViewEmbedder, RasterizerRunsOnPlatformThread) {
55
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
84
+ auto mock_jni = std::make_shared<MockJNI>();
85
+ EXPECT_CALL (*mock_jni, FlutterViewBeginFrame ());
86
+ EXPECT_CALL (*mock_jni, FlutterViewEndFrame ());
87
+
88
+ auto embedder =
89
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
56
90
auto platform_thread = new fml::Thread (" platform" );
57
91
auto rasterizer_thread = new fml::Thread (" rasterizer" );
58
92
auto platform_queue_id = platform_thread->GetTaskRunner ()->GetTaskQueueId ();
@@ -84,7 +118,11 @@ TEST(AndroidExternalViewEmbedder, RasterizerRunsOnPlatformThread) {
84
118
}
85
119
86
120
TEST (AndroidExternalViewEmbedder, RasterizerRunsOnRasterizerThread) {
87
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
121
+ auto mock_jni = std::make_shared<MockJNI>();
122
+ EXPECT_CALL (*mock_jni, FlutterViewEndFrame ());
123
+
124
+ auto embedder =
125
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
88
126
auto platform_thread = new fml::Thread (" platform" );
89
127
auto rasterizer_thread = new fml::Thread (" rasterizer" );
90
128
auto platform_queue_id = platform_thread->GetTaskRunner ()->GetTaskQueueId ();
@@ -103,7 +141,11 @@ TEST(AndroidExternalViewEmbedder, RasterizerRunsOnRasterizerThread) {
103
141
}
104
142
105
143
TEST (AndroidExternalViewEmbedder, PlatformViewRect) {
106
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
144
+ auto mock_jni = std::make_shared<MockJNI>();
145
+ EXPECT_CALL (*mock_jni, FlutterViewBeginFrame ());
146
+
147
+ auto embedder =
148
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
107
149
embedder->BeginFrame (SkISize::Make (100 , 100 ), nullptr , 1.5 );
108
150
109
151
auto view_params = std::make_unique<EmbeddedViewParams>();
@@ -116,7 +158,11 @@ TEST(AndroidExternalViewEmbedder, PlatformViewRect) {
116
158
}
117
159
118
160
TEST (AndroidExternalViewEmbedder, PlatformViewRect__ChangedParams) {
119
- auto embedder = new AndroidExternalViewEmbedder (nullptr , nullptr , nullptr );
161
+ auto mock_jni = std::make_shared<MockJNI>();
162
+ EXPECT_CALL (*mock_jni, FlutterViewBeginFrame ());
163
+
164
+ auto embedder =
165
+ std::make_unique<AndroidExternalViewEmbedder>(nullptr , mock_jni, nullptr );
120
166
embedder->BeginFrame (SkISize::Make (100 , 100 ), nullptr , 1.5 );
121
167
122
168
auto view_id = 0 ;
0 commit comments