| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 |