blob: 656fbea92e42732611ae3e33e0bc726b88f9291b [file] [log] [blame]
// Copyright 2012 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.chrome.browser.test;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.provider.Browser;
import android.provider.Browser.SearchColumns;
import org.chromium.base.test.util.DisabledTest;
import org.chromium.chrome.browser.ChromeBrowserProvider;
import java.util.Date;
/**
* Tests the use of the Searches URI as part of the Android provider public API.
*/
public class ProviderSearchesUriTest extends ProviderTestBase {
private Uri mSearchesUri;
@Override
protected void setUp() throws Exception {
super.setUp();
mSearchesUri = ChromeBrowserProvider.getSearchesApiUri(getActivity());
getContentResolver().delete(mSearchesUri, null, null);
}
@Override
protected void tearDown() throws Exception {
getContentResolver().delete(mSearchesUri, null, null);
super.tearDown();
}
private Uri addSearchTerm(String searchTerm, long searchTime) {
ContentValues values = new ContentValues();
values.put(SearchColumns.SEARCH, searchTerm);
values.put(SearchColumns.DATE, searchTime);
return getContentResolver().insert(mSearchesUri, values);
}
/**
* @MediumTest
* @Feature({"Android-ContentProvider"})
* BUG 154683
*/
@DisabledTest
public void testAddSearchTerm() {
long searchTime = System.currentTimeMillis();
String searchTerm = "chrome";
Uri uri = addSearchTerm(searchTerm, searchTime);
assertNotNull(uri);
String[] selectionArgs = { searchTerm, String.valueOf(searchTime) };
Cursor cursor = getContentResolver().query(uri, null, SearchColumns.SEARCH + "=? AND " +
SearchColumns.DATE + " = ? ", selectionArgs, null);
assertNotNull(cursor);
assertEquals(1, cursor.getCount());
assertTrue(cursor.moveToNext());
int index = cursor.getColumnIndex(SearchColumns.SEARCH);
assertTrue(-1 != index);
assertEquals(searchTerm, cursor.getString(index));
index = cursor.getColumnIndex(SearchColumns.DATE);
assertTrue(-1 != index);
assertEquals(searchTime, cursor.getLong(index));
}
/**
* @MediumTest
* @Feature({"Android-ContentProvider"})
* BUG 154683
*/
@DisabledTest
public void testUpdateSearchTerm() {
long[] searchTime = { System.currentTimeMillis(), System.currentTimeMillis() - 1000 };
String[] searchTerm = { "chrome", "chromium" };
Uri uri = addSearchTerm(searchTerm[0], searchTime[0]);
ContentValues values = new ContentValues();
values.put(SearchColumns.SEARCH, searchTerm[1]);
values.put(SearchColumns.DATE, searchTime[1]);
getContentResolver().update(uri, values, null, null);
String[] selectionArgs = { searchTerm[0] };
Cursor cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
selectionArgs, null);
assertNotNull(cursor);
assertEquals(0, cursor.getCount());
String[] selectionArgs1 = { searchTerm[1] };
cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
selectionArgs1, null);
assertNotNull(cursor);
assertEquals(1, cursor.getCount());
assertTrue(cursor.moveToNext());
int index = cursor.getColumnIndex(SearchColumns.SEARCH);
assertTrue(-1 != index);
assertEquals(searchTerm[1], cursor.getString(index));
index = cursor.getColumnIndex(SearchColumns.DATE);
assertTrue(-1 != index);
assertEquals(searchTime[1], cursor.getLong(index));
}
/**
* @MediumTest
* @Feature({"Android-ContentProvider"})
* BUG 154683
*/
@DisabledTest
public void testDeleteSearchTerm() {
long[] searchTime = { System.currentTimeMillis(), System.currentTimeMillis() - 1000 };
String[] searchTerm = {"chrome", "chromium"};
Uri uri[] = new Uri[2];
for (int i = 0; i < uri.length; i++) {
uri[i] = addSearchTerm(searchTerm[i], searchTime[i]);
}
getContentResolver().delete(uri[0], null, null);
String[] selectionArgs = { searchTerm[0] };
Cursor cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
selectionArgs, null);
assertNotNull(cursor);
assertEquals(0, cursor.getCount());
String[] selectionArgs1 = { searchTerm[1] };
cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
selectionArgs1, null);
assertNotNull(cursor);
assertEquals(1, cursor.getCount());
assertTrue(cursor.moveToNext());
int index = cursor.getColumnIndex(SearchColumns.SEARCH);
assertTrue(-1 != index);
assertEquals(searchTerm[1], cursor.getString(index));
index = cursor.getColumnIndex(SearchColumns.DATE);
assertTrue(-1 != index);
assertEquals(searchTime[1], cursor.getLong(index));
getContentResolver().delete(uri[1], null, null);
cursor = getContentResolver().query(uri[1], null, null, null, null);
assertNotNull(cursor);
assertEquals(0, cursor.getCount());
}
// Copied from CTS test with minor adaptations.
/**
* @MediumTest
* @Feature({"Android-ContentProvider"})
* BUG 154683
*/
@DisabledTest
public void testSearchesTable() {
final int ID_INDEX = 0;
String insertSearch = "search_insert";
String updateSearch = "search_update";
// Test: insert
ContentValues value = new ContentValues();
long createDate = new Date().getTime();
value.put(SearchColumns.SEARCH, insertSearch);
value.put(SearchColumns.DATE, createDate);
Uri insertUri = getContentResolver().insert(mSearchesUri, value);
Cursor cursor = getContentResolver().query(mSearchesUri,
Browser.SEARCHES_PROJECTION, SearchColumns.SEARCH + " = ?",
new String[] { insertSearch }, null);
assertTrue(cursor.moveToNext());
assertEquals(insertSearch,
cursor.getString(Browser.SEARCHES_PROJECTION_SEARCH_INDEX));
assertEquals(createDate,
cursor.getLong(Browser.SEARCHES_PROJECTION_DATE_INDEX));
int id = cursor.getInt(ID_INDEX);
cursor.close();
// Test: update
value.clear();
long updateDate = new Date().getTime();
value.put(SearchColumns.SEARCH, updateSearch);
value.put(SearchColumns.DATE, updateDate);
getContentResolver().update(mSearchesUri, value,
SearchColumns._ID + " = " + id, null);
cursor = getContentResolver().query(mSearchesUri,
Browser.SEARCHES_PROJECTION,
SearchColumns._ID + " = " + id, null, null);
assertTrue(cursor.moveToNext());
assertEquals(updateSearch,
cursor.getString(Browser.SEARCHES_PROJECTION_SEARCH_INDEX));
assertEquals(updateDate,
cursor.getLong(Browser.SEARCHES_PROJECTION_DATE_INDEX));
assertEquals(id, cursor.getInt(ID_INDEX));
// Test: delete
getContentResolver().delete(insertUri, null, null);
cursor = getContentResolver().query(mSearchesUri,
Browser.SEARCHES_PROJECTION,
SearchColumns._ID + " = " + id, null, null);
assertEquals(0, cursor.getCount());
}
}