6
6
import static org .mockito .ArgumentMatchers .anyInt ;
7
7
import static org .mockito .ArgumentMatchers .eq ;
8
8
import static org .mockito .Mockito .mock ;
9
+ import static org .mockito .Mockito .never ;
9
10
import static org .mockito .Mockito .times ;
10
11
import static org .mockito .Mockito .verify ;
11
12
import static org .mockito .Mockito .when ;
@@ -45,7 +46,7 @@ public void itForwardsSurfaceCreationNotificationToFlutterJNI() {
45
46
FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
46
47
47
48
// Execute the behavior under test.
48
- flutterRenderer .startRenderingToSurface (fakeSurface );
49
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
49
50
50
51
// Verify the behavior under test.
51
52
verify (fakeFlutterJNI , times (1 )).onSurfaceCreated (eq (fakeSurface ));
@@ -57,7 +58,7 @@ public void itForwardsSurfaceChangeNotificationToFlutterJNI() {
57
58
Surface fakeSurface = mock (Surface .class );
58
59
FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
59
60
60
- flutterRenderer .startRenderingToSurface (fakeSurface );
61
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
61
62
62
63
// Execute the behavior under test.
63
64
flutterRenderer .surfaceChanged (100 , 50 );
@@ -72,7 +73,7 @@ public void itForwardsSurfaceDestructionNotificationToFlutterJNI() {
72
73
Surface fakeSurface = mock (Surface .class );
73
74
FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
74
75
75
- flutterRenderer .startRenderingToSurface (fakeSurface );
76
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
76
77
77
78
// Execute the behavior under test.
78
79
flutterRenderer .stopRenderingToSurface ();
@@ -87,10 +88,10 @@ public void itStopsRenderingToOneSurfaceBeforeRenderingToANewSurface() {
87
88
Surface fakeSurface2 = mock (Surface .class );
88
89
FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
89
90
90
- flutterRenderer .startRenderingToSurface (fakeSurface );
91
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
91
92
92
93
// Execute behavior under test.
93
- flutterRenderer .startRenderingToSurface (fakeSurface2 );
94
+ flutterRenderer .startRenderingToSurface (fakeSurface2 , /*keepCurrentSurface=*/ false );
94
95
95
96
// Verify behavior under test.
96
97
verify (fakeFlutterJNI , times (1 )).onSurfaceDestroyed (); // notification of 1st surface's removal.
@@ -101,7 +102,7 @@ public void itStopsRenderingToSurfaceWhenRequested() {
101
102
// Setup the test.
102
103
FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
103
104
104
- flutterRenderer .startRenderingToSurface (fakeSurface );
105
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
105
106
106
107
// Execute the behavior under test.
107
108
flutterRenderer .stopRenderingToSurface ();
@@ -110,6 +111,32 @@ public void itStopsRenderingToSurfaceWhenRequested() {
110
111
verify (fakeFlutterJNI , times (1 )).onSurfaceDestroyed ();
111
112
}
112
113
114
+ @ Test
115
+ public void iStopsRenderingToSurfaceWhenSurfaceAlreadySet () {
116
+ // Setup the test.
117
+ FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
118
+
119
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
120
+
121
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
122
+
123
+ // Verify behavior under test.
124
+ verify (fakeFlutterJNI , times (1 )).onSurfaceDestroyed ();
125
+ }
126
+
127
+ @ Test
128
+ public void itNeverStopsRenderingToSurfaceWhenRequested () {
129
+ // Setup the test.
130
+ FlutterRenderer flutterRenderer = new FlutterRenderer (fakeFlutterJNI );
131
+
132
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
133
+
134
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ true );
135
+
136
+ // Verify behavior under test.
137
+ verify (fakeFlutterJNI , never ()).onSurfaceDestroyed ();
138
+ }
139
+
113
140
@ Test
114
141
public void itStopsSurfaceTextureCallbackWhenDetached () {
115
142
// Setup the test.
@@ -120,7 +147,7 @@ public void itStopsSurfaceTextureCallbackWhenDetached() {
120
147
FlutterRenderer .SurfaceTextureRegistryEntry entry =
121
148
(FlutterRenderer .SurfaceTextureRegistryEntry ) flutterRenderer .createSurfaceTexture ();
122
149
123
- flutterRenderer .startRenderingToSurface (fakeSurface );
150
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
124
151
125
152
// Execute the behavior under test.
126
153
flutterRenderer .stopRenderingToSurface ();
@@ -143,7 +170,7 @@ public void itRegistersExistingSurfaceTexture() {
143
170
(FlutterRenderer .SurfaceTextureRegistryEntry )
144
171
flutterRenderer .registerSurfaceTexture (surfaceTexture );
145
172
146
- flutterRenderer .startRenderingToSurface (fakeSurface );
173
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
147
174
148
175
// Verify behavior under test.
149
176
assertEquals (surfaceTexture , entry .surfaceTexture ());
@@ -164,7 +191,7 @@ public void itUnregistersTextureWhenSurfaceTextureFinalized() {
164
191
(FlutterRenderer .SurfaceTextureRegistryEntry ) flutterRenderer .createSurfaceTexture ();
165
192
long id = entry .id ();
166
193
167
- flutterRenderer .startRenderingToSurface (fakeSurface );
194
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
168
195
169
196
// Execute the behavior under test.
170
197
runFinalization (entry );
@@ -190,7 +217,7 @@ public void itStopsUnregisteringTextureWhenDetached() {
190
217
(FlutterRenderer .SurfaceTextureRegistryEntry ) flutterRenderer .createSurfaceTexture ();
191
218
long id = entry .id ();
192
219
193
- flutterRenderer .startRenderingToSurface (fakeSurface );
220
+ flutterRenderer .startRenderingToSurface (fakeSurface , /*keepCurrentSurface=*/ false );
194
221
195
222
flutterRenderer .stopRenderingToSurface ();
196
223
0 commit comments