@@ -77,13 +77,25 @@ public void testDoesNotThrowWithNullModelWhenRequestIsBuilt() {
77
77
getNullModelRequest ().into (target );
78
78
}
79
79
80
+ @ Test
81
+ public void testDoesNotThrowWithNullModelWhenRequestIsBuiltFront () {
82
+ getNullModelRequest ().experimentalIntoFront (target );
83
+ }
84
+
80
85
@ Test
81
86
public void testAddsNewRequestToRequestTracker () {
82
87
getNullModelRequest ().into (target );
83
88
84
89
verify (requestManager ).track (eq (target ), isA (Request .class ));
85
90
}
86
91
92
+ @ Test
93
+ public void testAddsNewRequestToRequestTrackerFront () {
94
+ getNullModelRequest ().experimentalIntoFront (target );
95
+
96
+ verify (requestManager ).track (eq (target ), isA (Request .class ));
97
+ }
98
+
87
99
@ Test
88
100
public void testRemovesPreviousRequestFromRequestTracker () {
89
101
Request previous = mock (Request .class );
@@ -94,17 +106,38 @@ public void testRemovesPreviousRequestFromRequestTracker() {
94
106
verify (requestManager ).clear (eq (target ));
95
107
}
96
108
109
+ @ Test
110
+ public void testRemovesPreviousRequestFromRequestTrackerFront () {
111
+ Request previous = mock (Request .class );
112
+ when (target .getRequest ()).thenReturn (previous );
113
+
114
+ getNullModelRequest ().experimentalIntoFront (target );
115
+
116
+ verify (requestManager ).clear (eq (target ));
117
+ }
118
+
97
119
@ Test (expected = NullPointerException .class )
98
120
public void testThrowsIfGivenNullTarget () {
99
121
//noinspection ConstantConditions testing if @NonNull is enforced
100
122
getNullModelRequest ().into ((Target <Object >) null );
101
123
}
102
124
125
+ @ Test (expected = NullPointerException .class )
126
+ public void testThrowsIfGivenNullTargetFront () {
127
+ //noinspection ConstantConditions testing if @NonNull is enforced
128
+ getNullModelRequest ().experimentalIntoFront ((Target <Object >) null );
129
+ }
130
+
103
131
@ Test (expected = NullPointerException .class )
104
132
public void testThrowsIfGivenNullView () {
105
133
getNullModelRequest ().into ((ImageView ) null );
106
134
}
107
135
136
+ @ Test (expected = NullPointerException .class )
137
+ public void testThrowsIfGivenNullViewFront () {
138
+ getNullModelRequest ().experimentalIntoFront ((ImageView ) null );
139
+ }
140
+
108
141
@ Test (expected = RuntimeException .class )
109
142
public void testThrowsIfIntoViewCalledOnBackgroundThread () throws InterruptedException {
110
143
final ImageView imageView = new ImageView (ApplicationProvider .getApplicationContext ());
@@ -117,6 +150,18 @@ public void runTest() {
117
150
});
118
151
}
119
152
153
+ @ Test (expected = RuntimeException .class )
154
+ public void testThrowsIfIntoViewCalledOnBackgroundThreadFront () throws InterruptedException {
155
+ final ImageView imageView = new ImageView (ApplicationProvider .getApplicationContext ());
156
+ testInBackground (
157
+ new BackgroundTester () {
158
+ @ Override
159
+ public void runTest () {
160
+ getNullModelRequest ().experimentalIntoFront (imageView );
161
+ }
162
+ });
163
+ }
164
+
120
165
@ Test
121
166
public void doesNotThrowIfIntoTargetCalledOnBackgroundThread () throws InterruptedException {
122
167
final Target <Object > target = mock (Target .class );
@@ -129,6 +174,18 @@ public void runTest() {
129
174
});
130
175
}
131
176
177
+ @ Test
178
+ public void doesNotThrowIfIntoTargetCalledOnBackgroundThreadFront () throws InterruptedException {
179
+ final Target <Object > target = mock (Target .class );
180
+ testInBackground (
181
+ new BackgroundTester () {
182
+ @ Override
183
+ public void runTest () {
184
+ getNullModelRequest ().experimentalIntoFront (target );
185
+ }
186
+ });
187
+ }
188
+
132
189
@ Test
133
190
public void testMultipleRequestListeners () {
134
191
getNullModelRequest ().addListener (listener1 ).addListener (listener2 ).into (target );
@@ -146,6 +203,26 @@ public void testMultipleRequestListeners() {
146
203
.onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
147
204
}
148
205
206
+ @ Test
207
+ public void testMultipleRequestListenersFront () {
208
+ getNullModelRequest ()
209
+ .addListener (listener1 )
210
+ .addListener (listener2 )
211
+ .experimentalIntoFront (target );
212
+ verify (requestManager ).track (any (Target .class ), requestCaptor .capture ());
213
+ requestCaptor
214
+ .getValue ()
215
+ .onResourceReady (
216
+ new SimpleResource <>(new Object ()),
217
+ DataSource .LOCAL ,
218
+ /* isLoadedFromAlternateCacheKey= */ false );
219
+
220
+ verify (listener1 )
221
+ .onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
222
+ verify (listener2 )
223
+ .onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
224
+ }
225
+
149
226
@ Test
150
227
public void testListenerApiOverridesListeners () {
151
228
getNullModelRequest ().addListener (listener1 ).listener (listener2 ).into (target );
@@ -164,6 +241,24 @@ public void testListenerApiOverridesListeners() {
164
241
.onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
165
242
}
166
243
244
+ @ Test
245
+ public void testListenerApiOverridesListenersFront () {
246
+ getNullModelRequest ().addListener (listener1 ).listener (listener2 ).experimentalIntoFront (target );
247
+ verify (requestManager ).track (any (Target .class ), requestCaptor .capture ());
248
+ requestCaptor
249
+ .getValue ()
250
+ .onResourceReady (
251
+ new SimpleResource <>(new Object ()),
252
+ DataSource .LOCAL ,
253
+ /* isLoadedFromAlternateCacheKey= */ false );
254
+
255
+ // The #listener API removes any previous listeners, so the first listener should not be called.
256
+ verify (listener1 , never ())
257
+ .onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
258
+ verify (listener2 )
259
+ .onResourceReady (any (), any (), isA (Target .class ), isA (DataSource .class ), anyBoolean ());
260
+ }
261
+
167
262
@ Test
168
263
public void testEquals () {
169
264
Object firstModel = new Object ();
0 commit comments