Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Side by Side Diff: content/public/android/javatests/src/org/chromium/content/browser/MediaResourceGetterTest.java

Issue 2708243004: Auto convert content shell tests to JUnit4 (Closed)
Patch Set: rebase Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698