OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.content.browser; | 5 package org.chromium.content.browser; |
6 | 6 |
7 import android.annotation.SuppressLint; | 7 import android.annotation.SuppressLint; |
8 import android.content.Context; | 8 import android.content.Context; |
9 import android.content.pm.PackageManager; | 9 import android.content.pm.PackageManager; |
10 import android.media.MediaMetadataRetriever; | 10 import android.media.MediaMetadataRetriever; |
11 import android.net.ConnectivityManager; | 11 import android.net.ConnectivityManager; |
12 import android.net.Uri; | 12 import android.net.Uri; |
13 import android.support.test.filters.SmallTest; | 13 import android.support.test.filters.SmallTest; |
14 import android.test.InstrumentationTestCase; | |
15 import android.test.mock.MockContext; | 14 import android.test.mock.MockContext; |
16 import android.util.SparseArray; | 15 import android.util.SparseArray; |
17 | 16 |
| 17 import org.junit.Assert; |
| 18 import org.junit.Before; |
| 19 import org.junit.Test; |
| 20 import org.junit.runner.RunWith; |
| 21 |
| 22 import org.chromium.base.test.BaseJUnit4ClassRunner; |
18 import org.chromium.content.browser.MediaResourceGetter.MediaMetadata; | 23 import org.chromium.content.browser.MediaResourceGetter.MediaMetadata; |
19 | 24 |
20 import java.io.File; | 25 import java.io.File; |
21 import java.util.Collections; | 26 import java.util.Collections; |
22 import java.util.HashMap; | 27 import java.util.HashMap; |
23 import java.util.Map; | 28 import java.util.Map; |
24 | 29 |
25 /** | 30 /** |
26 * Tests for MediaResourceGetter. | 31 * Tests for MediaResourceGetter. |
27 */ | 32 */ |
| 33 @RunWith(BaseJUnit4ClassRunner.class) |
28 @SuppressLint("SdCardPath") | 34 @SuppressLint("SdCardPath") |
29 public class MediaResourceGetterTest extends InstrumentationTestCase { | 35 public class MediaResourceGetterTest { |
30 private static final String TEST_HTTP_URL = "http://example.com"; | 36 private static final String TEST_HTTP_URL = "http://example.com"; |
31 private static final String TEST_USER_AGENT = // Anything, really | 37 private static final String TEST_USER_AGENT = // Anything, really |
32 "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 " | 38 "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 " |
33 + "(KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"; | 39 + "(KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"; |
34 private static final String TEST_FILE_PATH = "/mnt/sdcard/test"; | 40 private static final String TEST_FILE_PATH = "/mnt/sdcard/test"; |
35 private static final String TEST_FILE_URL = "file://" + TEST_FILE_PATH; | 41 private static final String TEST_FILE_URL = "file://" + TEST_FILE_PATH; |
36 private static final String TEST_CONTENT_URI = | 42 private static final String TEST_CONTENT_URI = |
37 "content://com.android.providers.media.documents/document/video:113"
; | 43 "content://com.android.providers.media.documents/document/video:113"
; |
38 private static final String TEST_COOKIES = "yum yum yum!"; | 44 private static final String TEST_COOKIES = "yum yum yum!"; |
39 private static final MediaMetadata sEmptyMetadata = new MediaMetadata(0, 0,
0, false); | 45 private static final MediaMetadata sEmptyMetadata = new MediaMetadata(0, 0,
0, false); |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 | 206 |
201 } | 207 } |
202 | 208 |
203 /** | 209 /** |
204 * Helper class to control the result of permission checks. | 210 * Helper class to control the result of permission checks. |
205 */ | 211 */ |
206 private static class InternalMockContext extends MockContext { | 212 private static class InternalMockContext extends MockContext { |
207 boolean mAllowPermission = false; | 213 boolean mAllowPermission = false; |
208 @Override | 214 @Override |
209 public int checkCallingOrSelfPermission(String permission) { | 215 public int checkCallingOrSelfPermission(String permission) { |
210 assertEquals(android.Manifest.permission.ACCESS_NETWORK_STATE, | 216 Assert.assertEquals(android.Manifest.permission.ACCESS_NETWORK_STATE
, permission); |
211 permission); | |
212 return mAllowPermission ? PackageManager.PERMISSION_GRANTED : | 217 return mAllowPermission ? PackageManager.PERMISSION_GRANTED : |
213 PackageManager.PERMISSION_DENIED; | 218 PackageManager.PERMISSION_DENIED; |
214 } | 219 } |
215 | 220 |
216 @Override | 221 @Override |
217 public String getPackageName() { | 222 public String getPackageName() { |
218 return "org.some.app.package"; | 223 return "org.some.app.package"; |
219 } | 224 } |
220 } | 225 } |
221 | 226 |
222 // Our test objects. | 227 // Our test objects. |
223 private FakeMediaResourceGetter mFakeMRG; | 228 private FakeMediaResourceGetter mFakeMRG; |
224 private InternalMockContext mMockContext; | 229 private InternalMockContext mMockContext; |
225 | 230 |
226 @Override | 231 @Before |
227 protected void setUp() throws Exception { | 232 public void setUp() throws Exception { |
228 super.setUp(); | |
229 mFakeMRG = new FakeMediaResourceGetter(); | 233 mFakeMRG = new FakeMediaResourceGetter(); |
230 mMockContext = new InternalMockContext(); | 234 mMockContext = new InternalMockContext(); |
231 } | 235 } |
232 | 236 |
| 237 @Test |
233 @SmallTest | 238 @SmallTest |
234 public void testMediaMetadataEquals() { | 239 public void testMediaMetadataEquals() { |
235 assertEquals(sEmptyMetadata, sEmptyMetadata); | 240 Assert.assertEquals(sEmptyMetadata, sEmptyMetadata); |
236 assertEquals(sEmptyMetadata, new MediaMetadata(0, 0, 0, false)); | 241 Assert.assertEquals(sEmptyMetadata, new MediaMetadata(0, 0, 0, false)); |
237 assertFalse(sEmptyMetadata.equals(null)); | 242 Assert.assertFalse(sEmptyMetadata.equals(null)); |
238 assertFalse(sEmptyMetadata.equals("test")); | 243 Assert.assertFalse(sEmptyMetadata.equals("test")); |
239 assertFalse(sEmptyMetadata.equals(new MediaMetadata(1, 0, 0, false))); | 244 Assert.assertFalse(sEmptyMetadata.equals(new MediaMetadata(1, 0, 0, fals
e))); |
240 assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 1, 0, false))); | 245 Assert.assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 1, 0, fals
e))); |
241 assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 0, 1, false))); | 246 Assert.assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 0, 1, fals
e))); |
242 assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 0, 0, true))); | 247 Assert.assertFalse(sEmptyMetadata.equals(new MediaMetadata(0, 0, 0, true
))); |
243 } | 248 } |
244 | 249 |
| 250 @Test |
245 @SmallTest | 251 @SmallTest |
246 public void testMediaMetadataHashCode() { | 252 public void testMediaMetadataHashCode() { |
247 assertEquals(sEmptyMetadata.hashCode(), sEmptyMetadata.hashCode()); | 253 Assert.assertEquals(sEmptyMetadata.hashCode(), sEmptyMetadata.hashCode()
); |
248 assertEquals(sEmptyMetadata.hashCode(), new MediaMetadata(0, 0, 0, false
).hashCode()); | 254 Assert.assertEquals( |
249 assertFalse(sEmptyMetadata.hashCode() == new MediaMetadata(1, 0, 0, fals
e).hashCode()); | 255 sEmptyMetadata.hashCode(), new MediaMetadata(0, 0, 0, false).has
hCode()); |
250 assertFalse(sEmptyMetadata.hashCode() == new MediaMetadata(0, 1, 0, fals
e).hashCode()); | 256 Assert.assertFalse( |
251 assertFalse(sEmptyMetadata.hashCode() == new MediaMetadata(0, 0, 1, fals
e).hashCode()); | 257 sEmptyMetadata.hashCode() == new MediaMetadata(1, 0, 0, false).h
ashCode()); |
252 assertFalse(sEmptyMetadata.hashCode() == new MediaMetadata(0, 0, 0, true
).hashCode()); | 258 Assert.assertFalse( |
| 259 sEmptyMetadata.hashCode() == new MediaMetadata(0, 1, 0, false).h
ashCode()); |
| 260 Assert.assertFalse( |
| 261 sEmptyMetadata.hashCode() == new MediaMetadata(0, 0, 1, false).h
ashCode()); |
| 262 Assert.assertFalse( |
| 263 sEmptyMetadata.hashCode() == new MediaMetadata(0, 0, 0, true).ha
shCode()); |
253 } | 264 } |
254 | 265 |
| 266 @Test |
255 @SmallTest | 267 @SmallTest |
256 public void testMediaMetadataGetters() { | 268 public void testMediaMetadataGetters() { |
257 MediaMetadata data = new MediaMetadata(1, 2, 3, true); | 269 MediaMetadata data = new MediaMetadata(1, 2, 3, true); |
258 assertEquals(1, data.getDurationInMilliseconds()); | 270 Assert.assertEquals(1, data.getDurationInMilliseconds()); |
259 assertEquals(2, data.getWidth()); | 271 Assert.assertEquals(2, data.getWidth()); |
260 assertEquals(3, data.getHeight()); | 272 Assert.assertEquals(3, data.getHeight()); |
261 assertTrue(data.isSuccess()); | 273 Assert.assertTrue(data.isSuccess()); |
262 | 274 |
263 // Validate no overlap of test values with defaults | 275 // Validate no overlap of test values with defaults |
264 data = new MediaMetadata(4, 5, 6, false); | 276 data = new MediaMetadata(4, 5, 6, false); |
265 assertEquals(4, data.getDurationInMilliseconds()); | 277 Assert.assertEquals(4, data.getDurationInMilliseconds()); |
266 assertEquals(5, data.getWidth()); | 278 Assert.assertEquals(5, data.getWidth()); |
267 assertEquals(6, data.getHeight()); | 279 Assert.assertEquals(6, data.getHeight()); |
268 assertFalse(data.isSuccess()); | 280 Assert.assertFalse(data.isSuccess()); |
269 } | 281 } |
270 | 282 |
| 283 @Test |
271 @SmallTest | 284 @SmallTest |
272 public void testConfigure_Net_NoPermissions() { | 285 public void testConfigure_Net_NoPermissions() { |
273 mMockContext.mAllowPermission = false; | 286 mMockContext.mAllowPermission = false; |
274 assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 287 Assert.assertFalse( |
275 TEST_COOKIES, TEST_USER_AGENT)); | 288 mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_COOKIES, TE
ST_USER_AGENT)); |
276 } | 289 } |
277 | 290 |
| 291 @Test |
278 @SmallTest | 292 @SmallTest |
279 public void testConfigure_Net_NoActiveNetwork() { | 293 public void testConfigure_Net_NoActiveNetwork() { |
280 mMockContext.mAllowPermission = true; | 294 mMockContext.mAllowPermission = true; |
281 mFakeMRG.mNetworkType = null; | 295 mFakeMRG.mNetworkType = null; |
282 assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 296 Assert.assertFalse( |
283 TEST_COOKIES, TEST_USER_AGENT)); | 297 mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_COOKIES, TE
ST_USER_AGENT)); |
284 } | 298 } |
285 | 299 |
| 300 @Test |
286 @SmallTest | 301 @SmallTest |
287 public void testConfigure_Net_Disallowed_Mobile() { | 302 public void testConfigure_Net_Disallowed_Mobile() { |
288 mMockContext.mAllowPermission = true; | 303 mMockContext.mAllowPermission = true; |
289 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_MOBILE; | 304 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_MOBILE; |
290 assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 305 Assert.assertFalse( |
291 TEST_COOKIES, TEST_USER_AGENT)); | 306 mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_COOKIES, TE
ST_USER_AGENT)); |
292 } | 307 } |
293 | 308 |
| 309 @Test |
294 @SmallTest | 310 @SmallTest |
295 public void testConfigure_Net_Disallowed_Wimax() { | 311 public void testConfigure_Net_Disallowed_Wimax() { |
296 mMockContext.mAllowPermission = true; | 312 mMockContext.mAllowPermission = true; |
297 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_WIMAX; | 313 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_WIMAX; |
298 assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 314 Assert.assertFalse( |
299 TEST_COOKIES, TEST_USER_AGENT)); | 315 mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_COOKIES, TE
ST_USER_AGENT)); |
300 } | 316 } |
301 | 317 |
| 318 @Test |
302 @SmallTest | 319 @SmallTest |
303 public void testConfigure_Net_Allowed_Ethernet_Cookies_NoUA() { | 320 public void testConfigure_Net_Allowed_Ethernet_Cookies_NoUA() { |
304 mMockContext.mAllowPermission = true; | 321 mMockContext.mAllowPermission = true; |
305 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; | 322 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; |
306 assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 323 Assert.assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_C
OOKIES, null)); |
307 TEST_COOKIES, null)); | 324 Assert.assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); |
308 assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); | 325 Assert.assertEquals(sHeadersCookieOnly, mFakeMRG.mHeaders); |
309 assertEquals(sHeadersCookieOnly, mFakeMRG.mHeaders); | 326 Assert.assertNull(mFakeMRG.mPath); |
310 assertNull(mFakeMRG.mPath); | 327 Assert.assertNull(mFakeMRG.mContentUri); |
311 assertNull(mFakeMRG.mContentUri); | |
312 } | 328 } |
313 | 329 |
| 330 @Test |
314 @SmallTest | 331 @SmallTest |
315 public void testConfigure_Net_Allowed_Wifi_Cookies_NoUA() { | 332 public void testConfigure_Net_Allowed_Wifi_Cookies_NoUA() { |
316 mMockContext.mAllowPermission = true; | 333 mMockContext.mAllowPermission = true; |
317 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_WIFI; | 334 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_WIFI; |
318 assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 335 Assert.assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_C
OOKIES, null)); |
319 TEST_COOKIES, null)); | 336 Assert.assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); |
320 assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); | 337 Assert.assertEquals(sHeadersCookieOnly, mFakeMRG.mHeaders); |
321 assertEquals(sHeadersCookieOnly, mFakeMRG.mHeaders); | 338 Assert.assertNull(mFakeMRG.mPath); |
322 assertNull(mFakeMRG.mPath); | 339 Assert.assertNull(mFakeMRG.mContentUri); |
323 assertNull(mFakeMRG.mContentUri); | |
324 } | 340 } |
325 | 341 |
| 342 @Test |
326 @SmallTest | 343 @SmallTest |
327 public void testConfigure_Net_Allowed_Ethernet_NoCookies_NoUA() { | 344 public void testConfigure_Net_Allowed_Ethernet_NoCookies_NoUA() { |
328 mMockContext.mAllowPermission = true; | 345 mMockContext.mAllowPermission = true; |
329 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; | 346 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; |
330 assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 347 Assert.assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, "", nu
ll)); |
331 "", null)); | 348 Assert.assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); |
332 assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); | 349 Assert.assertEquals(Collections.emptyMap(), mFakeMRG.mHeaders); |
333 assertEquals(Collections.emptyMap(), mFakeMRG.mHeaders); | 350 Assert.assertNull(mFakeMRG.mPath); |
334 assertNull(mFakeMRG.mPath); | 351 Assert.assertNull(mFakeMRG.mContentUri); |
335 assertNull(mFakeMRG.mContentUri); | |
336 } | 352 } |
337 | 353 |
| 354 @Test |
338 @SmallTest | 355 @SmallTest |
339 public void testConfigure_Net_Allowed_Ethernet_Cookies_WithUA() { | 356 public void testConfigure_Net_Allowed_Ethernet_Cookies_WithUA() { |
340 mMockContext.mAllowPermission = true; | 357 mMockContext.mAllowPermission = true; |
341 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; | 358 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; |
342 assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 359 Assert.assertTrue( |
343 TEST_COOKIES, TEST_USER_AGENT)); | 360 mFakeMRG.configure(mMockContext, TEST_HTTP_URL, TEST_COOKIES, TE
ST_USER_AGENT)); |
344 assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); | 361 Assert.assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); |
345 assertEquals(sHeadersCookieAndUA, mFakeMRG.mHeaders); | 362 Assert.assertEquals(sHeadersCookieAndUA, mFakeMRG.mHeaders); |
346 assertNull(mFakeMRG.mPath); | 363 Assert.assertNull(mFakeMRG.mPath); |
347 assertNull(mFakeMRG.mContentUri); | 364 Assert.assertNull(mFakeMRG.mContentUri); |
348 } | 365 } |
349 | 366 |
| 367 @Test |
350 @SmallTest | 368 @SmallTest |
351 public void testConfigure_Net_Allowed_Ethernet_NoCookies_WithUA() { | 369 public void testConfigure_Net_Allowed_Ethernet_NoCookies_WithUA() { |
352 mMockContext.mAllowPermission = true; | 370 mMockContext.mAllowPermission = true; |
353 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; | 371 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; |
354 assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 372 Assert.assertTrue(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, "", TE
ST_USER_AGENT)); |
355 "", TEST_USER_AGENT)); | 373 Assert.assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); |
356 assertEquals(TEST_HTTP_URL, mFakeMRG.mUri); | 374 Assert.assertEquals(sHeadersUAOnly, mFakeMRG.mHeaders); |
357 assertEquals(sHeadersUAOnly, mFakeMRG.mHeaders); | 375 Assert.assertNull(mFakeMRG.mPath); |
358 assertNull(mFakeMRG.mPath); | 376 Assert.assertNull(mFakeMRG.mContentUri); |
359 assertNull(mFakeMRG.mContentUri); | |
360 } | 377 } |
361 | 378 |
| 379 @Test |
362 @SmallTest | 380 @SmallTest |
363 public void testConfigure_Net_Allowed_Ethernet_Exception() { | 381 public void testConfigure_Net_Allowed_Ethernet_Exception() { |
364 mMockContext.mAllowPermission = true; | 382 mMockContext.mAllowPermission = true; |
365 mFakeMRG.mThrowExceptionInConfigure = true; | 383 mFakeMRG.mThrowExceptionInConfigure = true; |
366 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; | 384 mFakeMRG.mNetworkType = ConnectivityManager.TYPE_ETHERNET; |
367 assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, | 385 Assert.assertFalse(mFakeMRG.configure(mMockContext, TEST_HTTP_URL, "", T
EST_USER_AGENT)); |
368 "", TEST_USER_AGENT)); | 386 Assert.assertNull(mFakeMRG.mUri); |
369 assertNull(mFakeMRG.mUri); | 387 Assert.assertNull(mFakeMRG.mHeaders); |
370 assertNull(mFakeMRG.mHeaders); | |
371 } | 388 } |
372 | 389 |
| 390 @Test |
373 @SmallTest | 391 @SmallTest |
374 public void testConfigure_Net_Allowed_LocalHost_WithNoNetwork() { | 392 public void testConfigure_Net_Allowed_LocalHost_WithNoNetwork() { |
375 String[] localHostUrls = { | 393 String[] localHostUrls = { |
376 "http://LocalHost", | 394 "http://LocalHost", |
377 "http://LocalHost6", | 395 "http://LocalHost6", |
378 "http://helloworld.localhost:8000", | 396 "http://helloworld.localhost:8000", |
379 "https://127.0.0.1/", | 397 "https://127.0.0.1/", |
380 "http://[::1]:8888/", | 398 "http://[::1]:8888/", |
381 }; | 399 }; |
382 mMockContext.mAllowPermission = true; | 400 mMockContext.mAllowPermission = true; |
383 mFakeMRG.mNetworkType = null; | 401 mFakeMRG.mNetworkType = null; |
384 for (String localHostUrl : localHostUrls) { | 402 for (String localHostUrl : localHostUrls) { |
385 assertTrue(mFakeMRG.configure(mMockContext, localHostUrl, | 403 Assert.assertTrue( |
386 TEST_COOKIES, TEST_USER_AGENT)); | 404 mFakeMRG.configure(mMockContext, localHostUrl, TEST_COOKIES,
TEST_USER_AGENT)); |
387 assertEquals(localHostUrl, mFakeMRG.mUri); | 405 Assert.assertEquals(localHostUrl, mFakeMRG.mUri); |
388 assertEquals(sHeadersCookieAndUA, mFakeMRG.mHeaders); | 406 Assert.assertEquals(sHeadersCookieAndUA, mFakeMRG.mHeaders); |
389 assertNull(mFakeMRG.mPath); | 407 Assert.assertNull(mFakeMRG.mPath); |
390 assertNull(mFakeMRG.mContentUri); | 408 Assert.assertNull(mFakeMRG.mContentUri); |
391 } | 409 } |
392 } | 410 } |
393 | 411 |
| 412 @Test |
394 @SmallTest | 413 @SmallTest |
395 public void testConfigure_File_Allowed_MntSdcard() { | 414 public void testConfigure_File_Allowed_MntSdcard() { |
396 final String path = "/mnt/sdcard/test"; | 415 final String path = "/mnt/sdcard/test"; |
397 final String url = "file://" + path; | 416 final String url = "file://" + path; |
398 mFakeMRG.mFileExists = true; | 417 mFakeMRG.mFileExists = true; |
399 assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); | 418 Assert.assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); |
400 assertEquals(path, mFakeMRG.mPath); | 419 Assert.assertEquals(path, mFakeMRG.mPath); |
401 assertNull(mFakeMRG.mUri); | 420 Assert.assertNull(mFakeMRG.mUri); |
402 assertNull(mFakeMRG.mContentUri); | 421 Assert.assertNull(mFakeMRG.mContentUri); |
403 assertNull(mFakeMRG.mHeaders); | 422 Assert.assertNull(mFakeMRG.mHeaders); |
404 } | 423 } |
405 | 424 |
| 425 @Test |
406 @SmallTest | 426 @SmallTest |
407 public void testConfigure_File_Allowed_Sdcard() { | 427 public void testConfigure_File_Allowed_Sdcard() { |
408 final String path = "/sdcard/test"; | 428 final String path = "/sdcard/test"; |
409 final String url = "file://" + path; | 429 final String url = "file://" + path; |
410 mFakeMRG.mFileExists = true; | 430 mFakeMRG.mFileExists = true; |
411 assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); | 431 Assert.assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); |
412 assertEquals(path, mFakeMRG.mPath); | 432 Assert.assertEquals(path, mFakeMRG.mPath); |
413 assertNull(mFakeMRG.mUri); | 433 Assert.assertNull(mFakeMRG.mUri); |
414 assertNull(mFakeMRG.mContentUri); | 434 Assert.assertNull(mFakeMRG.mContentUri); |
415 assertNull(mFakeMRG.mHeaders); | 435 Assert.assertNull(mFakeMRG.mHeaders); |
416 } | 436 } |
417 | 437 |
| 438 @Test |
418 @SmallTest | 439 @SmallTest |
419 public void testConfigure_File_Allowed_Sdcard_DoesntExist() { | 440 public void testConfigure_File_Allowed_Sdcard_DoesntExist() { |
420 final String path = "/sdcard/test"; | 441 final String path = "/sdcard/test"; |
421 final String url = "file://" + path; | 442 final String url = "file://" + path; |
422 mFakeMRG.mFileExists = false; | 443 mFakeMRG.mFileExists = false; |
423 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 444 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
424 assertNull(mFakeMRG.mPath); | 445 Assert.assertNull(mFakeMRG.mPath); |
425 } | 446 } |
426 | 447 |
| 448 @Test |
427 @SmallTest | 449 @SmallTest |
428 public void testConfigure_File_Allowed_ExternalStorage() { | 450 public void testConfigure_File_Allowed_ExternalStorage() { |
429 final String path = sExternalStorageDirectory + "/test"; | 451 final String path = sExternalStorageDirectory + "/test"; |
430 final String url = "file://" + path; | 452 final String url = "file://" + path; |
431 mFakeMRG.mFileExists = true; | 453 mFakeMRG.mFileExists = true; |
432 assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); | 454 Assert.assertTrue(mFakeMRG.configure(mMockContext, url, "", null)); |
433 assertEquals(path, mFakeMRG.mPath); | 455 Assert.assertEquals(path, mFakeMRG.mPath); |
434 assertNull(mFakeMRG.mUri); | 456 Assert.assertNull(mFakeMRG.mUri); |
435 assertNull(mFakeMRG.mContentUri); | 457 Assert.assertNull(mFakeMRG.mContentUri); |
436 assertNull(mFakeMRG.mHeaders); | 458 Assert.assertNull(mFakeMRG.mHeaders); |
437 } | 459 } |
438 | 460 |
| 461 @Test |
439 @SmallTest | 462 @SmallTest |
440 public void testConfigure_File_Disallowed_Innocent() { | 463 public void testConfigure_File_Disallowed_Innocent() { |
441 final String path = "/malicious/path"; | 464 final String path = "/malicious/path"; |
442 final String url = "file://" + path; | 465 final String url = "file://" + path; |
443 mFakeMRG.mFileExists = true; | 466 mFakeMRG.mFileExists = true; |
444 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 467 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
445 assertNull(mFakeMRG.mPath); | 468 Assert.assertNull(mFakeMRG.mPath); |
446 } | 469 } |
447 | 470 |
| 471 @Test |
448 @SmallTest | 472 @SmallTest |
449 public void testConfigure_File_Disallowed_Malicious() { | 473 public void testConfigure_File_Disallowed_Malicious() { |
450 final String path = "/mnt/sdcard/../../data"; | 474 final String path = "/mnt/sdcard/../../data"; |
451 final String url = "file://" + path; | 475 final String url = "file://" + path; |
452 mFakeMRG.mFileExists = true; | 476 mFakeMRG.mFileExists = true; |
453 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 477 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
454 assertNull(mFakeMRG.mPath); | 478 Assert.assertNull(mFakeMRG.mPath); |
455 } | 479 } |
456 | 480 |
| 481 @Test |
457 @SmallTest | 482 @SmallTest |
458 public void testConfigure_File_Allowed_Exception() { | 483 public void testConfigure_File_Allowed_Exception() { |
459 final String path = "/mnt/sdcard/test"; | 484 final String path = "/mnt/sdcard/test"; |
460 final String url = "file://" + path; | 485 final String url = "file://" + path; |
461 mFakeMRG.mFileExists = true; | 486 mFakeMRG.mFileExists = true; |
462 mFakeMRG.mThrowExceptionInConfigure = true; | 487 mFakeMRG.mThrowExceptionInConfigure = true; |
463 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 488 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
464 assertNull(mFakeMRG.mPath); | 489 Assert.assertNull(mFakeMRG.mPath); |
465 } | 490 } |
466 | 491 |
| 492 @Test |
467 @SmallTest | 493 @SmallTest |
468 public void testConfigure_Blob_Disallow_Null_Cache() { | 494 public void testConfigure_Blob_Disallow_Null_Cache() { |
469 final String path = "/data/data/" + null + "/cache/"; | 495 final String path = "/data/data/" + null + "/cache/"; |
470 final String url = path; | 496 final String url = path; |
471 mFakeMRG.mFileExists = true; | 497 mFakeMRG.mFileExists = true; |
472 mFakeMRG.mThrowExceptionInConfigure = true; | 498 mFakeMRG.mThrowExceptionInConfigure = true; |
473 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 499 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
474 assertNull(mFakeMRG.mPath); | 500 Assert.assertNull(mFakeMRG.mPath); |
475 } | 501 } |
476 | 502 |
| 503 @Test |
477 @SmallTest | 504 @SmallTest |
478 public void testConfigure_Blob_Disallowed_Incomplete_Path() { | 505 public void testConfigure_Blob_Disallowed_Incomplete_Path() { |
479 final String path = "/data/data/"; | 506 final String path = "/data/data/"; |
480 final String url = path; | 507 final String url = path; |
481 mFakeMRG.mFileExists = true; | 508 mFakeMRG.mFileExists = true; |
482 mFakeMRG.mThrowExceptionInConfigure = true; | 509 mFakeMRG.mThrowExceptionInConfigure = true; |
483 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 510 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
484 assertNull(mFakeMRG.mPath); | 511 Assert.assertNull(mFakeMRG.mPath); |
485 } | 512 } |
486 | 513 |
| 514 @Test |
487 @SmallTest | 515 @SmallTest |
488 public void testConfigure_Blob_Disallowed_Unknown_Path() { | 516 public void testConfigure_Blob_Disallowed_Unknown_Path() { |
489 final String path = "/unknown/path/"; | 517 final String path = "/unknown/path/"; |
490 final String url = path; | 518 final String url = path; |
491 mFakeMRG.mFileExists = true; | 519 mFakeMRG.mFileExists = true; |
492 mFakeMRG.mThrowExceptionInConfigure = true; | 520 mFakeMRG.mThrowExceptionInConfigure = true; |
493 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 521 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
494 assertNull(mFakeMRG.mPath); | 522 Assert.assertNull(mFakeMRG.mPath); |
495 } | 523 } |
496 | 524 |
| 525 @Test |
497 @SmallTest | 526 @SmallTest |
498 public void testConfigure_Blob_Disallowed_Other_Application() { | 527 public void testConfigure_Blob_Disallowed_Other_Application() { |
499 final String path = "/data/data/org.some.other.app/cache/"; | 528 final String path = "/data/data/org.some.other.app/cache/"; |
500 final String url = path; | 529 final String url = path; |
501 mFakeMRG.mFileExists = true; | 530 mFakeMRG.mFileExists = true; |
502 mFakeMRG.mThrowExceptionInConfigure = true; | 531 mFakeMRG.mThrowExceptionInConfigure = true; |
503 assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); | 532 Assert.assertFalse(mFakeMRG.configure(mMockContext, url, "", null)); |
504 assertNull(mFakeMRG.mPath); | 533 Assert.assertNull(mFakeMRG.mPath); |
505 } | 534 } |
506 | 535 |
| 536 @Test |
507 @SmallTest | 537 @SmallTest |
508 public void testConfigure_Content_Uri_Allowed() { | 538 public void testConfigure_Content_Uri_Allowed() { |
509 assertTrue(mFakeMRG.configure(mMockContext, TEST_CONTENT_URI, "", null))
; | 539 Assert.assertTrue(mFakeMRG.configure(mMockContext, TEST_CONTENT_URI, "",
null)); |
510 assertNull(mFakeMRG.mPath); | 540 Assert.assertNull(mFakeMRG.mPath); |
511 assertNull(mFakeMRG.mUri); | 541 Assert.assertNull(mFakeMRG.mUri); |
512 assertEquals(TEST_CONTENT_URI, mFakeMRG.mContentUri); | 542 Assert.assertEquals(TEST_CONTENT_URI, mFakeMRG.mContentUri); |
513 } | 543 } |
514 | 544 |
| 545 @Test |
515 @SmallTest | 546 @SmallTest |
516 public void testConfigure_Content_Uri_Disallowed() { | 547 public void testConfigure_Content_Uri_Disallowed() { |
517 mFakeMRG.mThrowExceptionInConfigure = true; | 548 mFakeMRG.mThrowExceptionInConfigure = true; |
518 assertFalse(mFakeMRG.configure(mMockContext, TEST_CONTENT_URI, "", null)
); | 549 Assert.assertFalse(mFakeMRG.configure(mMockContext, TEST_CONTENT_URI, ""
, null)); |
519 assertNull(mFakeMRG.mPath); | 550 Assert.assertNull(mFakeMRG.mPath); |
520 assertNull(mFakeMRG.mUri); | 551 Assert.assertNull(mFakeMRG.mUri); |
521 assertNull(mFakeMRG.mContentUri); | 552 Assert.assertNull(mFakeMRG.mContentUri); |
522 } | 553 } |
523 | 554 |
| 555 @Test |
524 @SmallTest | 556 @SmallTest |
525 public void testExtract_NoMetadata() { | 557 public void testExtract_NoMetadata() { |
526 mFakeMRG.mFileExists = true; | 558 mFakeMRG.mFileExists = true; |
527 assertEquals(sEmptyMetadata, mFakeMRG.extract( | 559 Assert.assertEquals( |
528 mMockContext, TEST_FILE_URL, null, null)); | 560 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
529 assertEquals("configured successfully when we shouldn't have", | 561 Assert.assertEquals("configured successfully when we shouldn't have", TE
ST_FILE_PATH, |
530 TEST_FILE_PATH, mFakeMRG.mPath); // tricky | 562 mFakeMRG.mPath); // tricky |
531 } | 563 } |
532 | 564 |
| 565 @Test |
533 @SmallTest | 566 @SmallTest |
534 public void testExtract_WithMetadata_ValidDuration() { | 567 public void testExtract_WithMetadata_ValidDuration() { |
535 mFakeMRG.mFileExists = true; | 568 mFakeMRG.mFileExists = true; |
536 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 569 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
537 final MediaMetadata expected = new MediaMetadata(1, 0, 0, true); | 570 final MediaMetadata expected = new MediaMetadata(1, 0, 0, true); |
538 assertEquals(expected, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nul
l, null)); | 571 Assert.assertEquals(expected, mFakeMRG.extract(mMockContext, TEST_FILE_U
RL, null, null)); |
539 } | 572 } |
540 | 573 |
| 574 @Test |
541 @SmallTest | 575 @SmallTest |
542 public void testExtract_WithMetadata_InvalidDuration() { | 576 public void testExtract_WithMetadata_InvalidDuration() { |
543 mFakeMRG.mFileExists = true; | 577 mFakeMRG.mFileExists = true; |
544 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "i am not an
integer"); | 578 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "i am not an
integer"); |
545 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 579 Assert.assertEquals( |
546 } | 580 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
547 | 581 } |
| 582 |
| 583 @Test |
548 @SmallTest | 584 @SmallTest |
549 public void testExtract_WithMetadata_ValidDuration_HasVideo_NoWidth_NoHeight
() { | 585 public void testExtract_WithMetadata_ValidDuration_HasVideo_NoWidth_NoHeight
() { |
550 mFakeMRG.mFileExists = true; | 586 mFakeMRG.mFileExists = true; |
551 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 587 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
552 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 588 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
553 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 589 Assert.assertEquals( |
554 } | 590 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
555 | 591 } |
| 592 |
| 593 @Test |
556 @SmallTest | 594 @SmallTest |
557 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_NoHei
ght() { | 595 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_NoHei
ght() { |
558 mFakeMRG.mFileExists = true; | 596 mFakeMRG.mFileExists = true; |
559 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 597 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
560 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 598 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
561 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "1"); | 599 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "1"); |
562 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 600 Assert.assertEquals( |
563 } | 601 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
564 | 602 } |
| 603 |
| 604 @Test |
565 @SmallTest | 605 @SmallTest |
566 public void testExtract_WithMetadata_ValidDuration_HasVideo_InvalidWidth_NoH
eight() { | 606 public void testExtract_WithMetadata_ValidDuration_HasVideo_InvalidWidth_NoH
eight() { |
567 mFakeMRG.mFileExists = true; | 607 mFakeMRG.mFileExists = true; |
568 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 608 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
569 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 609 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
570 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "i am not
an integer"); | 610 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "i am not
an integer"); |
571 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 611 Assert.assertEquals( |
572 } | 612 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
573 | 613 } |
| 614 |
| 615 @Test |
574 @SmallTest | 616 @SmallTest |
575 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_Valid
Height() { | 617 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_Valid
Height() { |
576 mFakeMRG.mFileExists = true; | 618 mFakeMRG.mFileExists = true; |
577 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 619 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
578 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 620 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
579 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "2"); | 621 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "2"); |
580 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "3"); | 622 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "3"); |
581 final MediaMetadata expected = new MediaMetadata(1, 2, 3, true); | 623 final MediaMetadata expected = new MediaMetadata(1, 2, 3, true); |
582 assertEquals(expected, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nul
l, null)); | 624 Assert.assertEquals(expected, mFakeMRG.extract(mMockContext, TEST_FILE_U
RL, null, null)); |
583 } | 625 } |
584 | 626 |
| 627 @Test |
585 @SmallTest | 628 @SmallTest |
586 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_Inval
idHeight() { | 629 public void testExtract_WithMetadata_ValidDuration_HasVideo_ValidWidth_Inval
idHeight() { |
587 mFakeMRG.mFileExists = true; | 630 mFakeMRG.mFileExists = true; |
588 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 631 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
589 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 632 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
590 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "1"); | 633 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "1"); |
591 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "i am no
t an integer"); | 634 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "i am no
t an integer"); |
592 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 635 Assert.assertEquals( |
| 636 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
593 } | 637 } |
594 | 638 |
| 639 @Test |
595 @SmallTest | 640 @SmallTest |
596 public void testExtract_WithMetadata_ValidDuration_ExceptionInExtract() { | 641 public void testExtract_WithMetadata_ValidDuration_ExceptionInExtract() { |
597 mFakeMRG.mFileExists = true; | 642 mFakeMRG.mFileExists = true; |
598 mFakeMRG.mThrowExceptionInExtract = true; | 643 mFakeMRG.mThrowExceptionInExtract = true; |
599 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 644 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
600 assertEquals(sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_UR
L, null, null)); | 645 Assert.assertEquals( |
| 646 sEmptyMetadata, mFakeMRG.extract(mMockContext, TEST_FILE_URL, nu
ll, null)); |
601 } | 647 } |
602 | 648 |
| 649 @Test |
603 @SmallTest | 650 @SmallTest |
604 public void testExtractFromFileDescriptor_ValidMetadata() { | 651 public void testExtractFromFileDescriptor_ValidMetadata() { |
605 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); | 652 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_DURATION, "1"); |
606 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); | 653 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO, "yes"); |
607 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "2"); | 654 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH, "2"); |
608 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "3"); | 655 mFakeMRG.bind(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT, "3"); |
609 final MediaMetadata expected = new MediaMetadata(1, 2, 3, true); | 656 final MediaMetadata expected = new MediaMetadata(1, 2, 3, true); |
610 int fd = 1234; | 657 int fd = 1234; |
611 long offset = 1000; | 658 long offset = 1000; |
612 long length = 9000; | 659 long length = 9000; |
613 assertEquals(expected, mFakeMRG.extract(fd, offset, length)); | 660 Assert.assertEquals(expected, mFakeMRG.extract(fd, offset, length)); |
614 assertEquals(fd, mFakeMRG.mFd); | 661 Assert.assertEquals(fd, mFakeMRG.mFd); |
615 assertEquals(offset, mFakeMRG.mOffset); | 662 Assert.assertEquals(offset, mFakeMRG.mOffset); |
616 assertEquals(length, mFakeMRG.mLength); | 663 Assert.assertEquals(length, mFakeMRG.mLength); |
617 } | 664 } |
618 } | 665 } |
OLD | NEW |