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

Unified Diff: components/web_restriction/junit/src/org/chromium/components/webrestriction/WebRestrictionsContentProviderTest.java

Issue 1452603002: Supervised user web restrictions content provider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to more comments Created 5 years 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/web_restriction/java/src/org/chromium/components/webrestriction/WebRestrictionsContentProvider.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/web_restriction/junit/src/org/chromium/components/webrestriction/WebRestrictionsContentProviderTest.java
diff --git a/components/web_restriction/junit/src/org/chromium/components/webrestriction/WebRestrictionsContentProviderTest.java b/components/web_restriction/junit/src/org/chromium/components/webrestriction/WebRestrictionsContentProviderTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..0da6bd8a01b5a527bb19235e346913173c07f2a3
--- /dev/null
+++ b/components/web_restriction/junit/src/org/chromium/components/webrestriction/WebRestrictionsContentProviderTest.java
@@ -0,0 +1,121 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.webrestriction;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.pm.ProviderInfo;
+import android.database.Cursor;
+import android.net.Uri;
+import android.util.Pair;
+
+import org.chromium.testing.local.LocalRobolectricTestRunner;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowContentResolver;
+
+/**
+ * Tests of WebRestrictionsContentProvider.
+ */
+@RunWith(LocalRobolectricTestRunner.class)
+@Config(manifest = Config.NONE)
+public class WebRestrictionsContentProviderTest {
+ private static final String AUTHORITY = "org.chromium.browser.DummyProvider";
+
+ private WebRestrictionsContentProvider mContentProvider;
+ private ContentResolver mContentResolver;
+ private Uri mUri;
+
+ @Before
+ public void setUp() {
+ // The test needs a concrete version of the test class, but mocks the additional members as
+ // necessary.
+ mContentProvider = Mockito.spy(new WebRestrictionsContentProvider() {
+ @Override
+ protected Pair<Boolean, String> shouldProceed(String url) {
+ return null;
+ }
+
+ @Override
+ protected boolean canInsert() {
+ return false;
+ }
+
+ @Override
+ protected boolean requestInsert(String url) {
+ return false;
+ }
+ });
+ mContentProvider.onCreate();
+ ShadowContentResolver.registerProvider(AUTHORITY, mContentProvider);
+ ProviderInfo info = new ProviderInfo();
+ info.authority = AUTHORITY;
+ mContentProvider.attachInfo(null, info);
+ mContentResolver = Robolectric.application.getContentResolver();
+ mUri = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY)
+ .build();
+ }
+
+ @Test
+ public void testQuery() {
+ when(mContentProvider.shouldProceed(anyString()))
+ .thenReturn(new Pair<Boolean, String>(false, "Error Message"));
+ Cursor cursor = mContentResolver.query(mUri.buildUpon().appendPath("authorized").build(),
+ null, "url = 'dummy'", null, null);
+ verify(mContentProvider).shouldProceed("dummy");
+ assertThat(cursor, is(not(nullValue())));
+ assertThat(cursor.getInt(0), is(WebRestrictionsContentProvider.BLOCKED));
+ assertThat(cursor.getString(1), is("Error Message"));
+ when(mContentProvider.shouldProceed(anyString()))
+ .thenReturn(new Pair<Boolean, String>(true, null));
+ cursor = mContentResolver.query(mUri.buildUpon().appendPath("authorized").build(), null,
+ "url = 'dummy'", null, null);
+ assertThat(cursor, is(not(nullValue())));
+ assertThat(cursor.getInt(0), is(WebRestrictionsContentProvider.PROCEED));
+ }
+
+ @Test
+ public void testInsert() {
+ ContentValues values = new ContentValues();
+ values.put("url", "dummy2");
+ when(mContentProvider.requestInsert(anyString())).thenReturn(false);
+ assertThat(
+ mContentResolver.insert(mUri.buildUpon().appendPath("requested").build(), values),
+ is(nullValue()));
+ verify(mContentProvider).requestInsert("dummy2");
+ values.put("url", "dummy3");
+ when(mContentProvider.requestInsert(anyString())).thenReturn(true);
+ assertThat(
+ mContentResolver.insert(mUri.buildUpon().appendPath("requested").build(), values),
+ is(not(nullValue())));
+ verify(mContentProvider).requestInsert("dummy3");
+ }
+
+ @Test
+ public void testGetType() {
+ assertThat(mContentResolver.getType(mUri.buildUpon().appendPath("junk").build()),
+ is(nullValue()));
+ when(mContentProvider.canInsert()).thenReturn(false);
+ assertThat(mContentResolver.getType(mUri.buildUpon().appendPath("requested").build()),
+ is(nullValue()));
+ when(mContentProvider.canInsert()).thenReturn(true);
+ assertThat(mContentResolver.getType(mUri.buildUpon().appendPath("requested").build()),
+ is(not(nullValue())));
+ }
+}
« no previous file with comments | « components/web_restriction/java/src/org/chromium/components/webrestriction/WebRestrictionsContentProvider.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698