Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / android / javatests / src / org / chromium / chrome / browser / test / ProviderSearchesUriTest.java
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
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.test;
6
7 import android.content.ContentValues;
8 import android.database.Cursor;
9 import android.net.Uri;
10 import android.provider.Browser;
11 import android.provider.Browser.SearchColumns;
12
13 import org.chromium.base.test.util.DisabledTest;
14 import org.chromium.chrome.browser.ChromeBrowserProvider;
15
16 import java.util.Date;
17
18 /**
19  * Tests the use of the Searches URI as part of the Android provider public API.
20  */
21 public class ProviderSearchesUriTest extends ProviderTestBase {
22
23     private Uri mSearchesUri;
24
25     @Override
26     protected void setUp() throws Exception {
27         super.setUp();
28         mSearchesUri = ChromeBrowserProvider.getSearchesApiUri(getActivity());
29         getContentResolver().delete(mSearchesUri, null, null);
30     }
31
32     @Override
33     protected void tearDown() throws Exception {
34         getContentResolver().delete(mSearchesUri, null, null);
35         super.tearDown();
36     }
37
38     private Uri addSearchTerm(String searchTerm, long searchTime) {
39         ContentValues values = new ContentValues();
40         values.put(SearchColumns.SEARCH, searchTerm);
41         values.put(SearchColumns.DATE, searchTime);
42         return getContentResolver().insert(mSearchesUri, values);
43     }
44
45     /**
46      * @MediumTest
47      * @Feature({"Android-ContentProvider"})
48      * BUG 154683
49      */
50     @DisabledTest
51     public void testAddSearchTerm() {
52         long searchTime = System.currentTimeMillis();
53         String searchTerm = "chrome";
54         Uri uri = addSearchTerm(searchTerm, searchTime);
55         assertNotNull(uri);
56         String[] selectionArgs = { searchTerm, String.valueOf(searchTime) };
57         Cursor cursor = getContentResolver().query(uri, null, SearchColumns.SEARCH + "=? AND " +
58                 SearchColumns.DATE + " = ? ", selectionArgs, null);
59         assertNotNull(cursor);
60         assertEquals(1, cursor.getCount());
61         assertTrue(cursor.moveToNext());
62         int index = cursor.getColumnIndex(SearchColumns.SEARCH);
63         assertTrue(-1 != index);
64         assertEquals(searchTerm, cursor.getString(index));
65         index = cursor.getColumnIndex(SearchColumns.DATE);
66         assertTrue(-1 != index);
67         assertEquals(searchTime, cursor.getLong(index));
68     }
69
70     /**
71      * @MediumTest
72      * @Feature({"Android-ContentProvider"})
73      * BUG 154683
74      */
75     @DisabledTest
76     public void testUpdateSearchTerm() {
77         long[] searchTime = { System.currentTimeMillis(), System.currentTimeMillis() - 1000 };
78         String[] searchTerm = { "chrome", "chromium" };
79         Uri uri = addSearchTerm(searchTerm[0], searchTime[0]);
80         ContentValues values = new ContentValues();
81         values.put(SearchColumns.SEARCH, searchTerm[1]);
82         values.put(SearchColumns.DATE, searchTime[1]);
83         getContentResolver().update(uri, values, null, null);
84         String[] selectionArgs = { searchTerm[0] };
85         Cursor cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
86                 selectionArgs, null);
87         assertNotNull(cursor);
88         assertEquals(0, cursor.getCount());
89         String[] selectionArgs1 = { searchTerm[1] };
90         cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
91                 selectionArgs1, null);
92         assertNotNull(cursor);
93         assertEquals(1, cursor.getCount());
94         assertTrue(cursor.moveToNext());
95         int index = cursor.getColumnIndex(SearchColumns.SEARCH);
96         assertTrue(-1 != index);
97         assertEquals(searchTerm[1], cursor.getString(index));
98         index = cursor.getColumnIndex(SearchColumns.DATE);
99         assertTrue(-1 != index);
100         assertEquals(searchTime[1], cursor.getLong(index));
101     }
102
103     /**
104      * @MediumTest
105      * @Feature({"Android-ContentProvider"})
106      * BUG 154683
107      */
108     @DisabledTest
109     public void testDeleteSearchTerm() {
110         long[] searchTime = { System.currentTimeMillis(), System.currentTimeMillis() - 1000 };
111         String[] searchTerm = {"chrome", "chromium"};
112         Uri uri[] = new Uri[2];
113         for (int i = 0; i < uri.length; i++) {
114             uri[i] = addSearchTerm(searchTerm[i], searchTime[i]);
115         }
116         getContentResolver().delete(uri[0], null, null);
117         String[] selectionArgs = { searchTerm[0] };
118         Cursor cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
119                 selectionArgs, null);
120         assertNotNull(cursor);
121         assertEquals(0, cursor.getCount());
122         String[] selectionArgs1 = { searchTerm[1] };
123         cursor = getContentResolver().query(mSearchesUri, null, SearchColumns.SEARCH + "=?",
124                 selectionArgs1, null);
125         assertNotNull(cursor);
126         assertEquals(1, cursor.getCount());
127         assertTrue(cursor.moveToNext());
128         int index = cursor.getColumnIndex(SearchColumns.SEARCH);
129         assertTrue(-1 != index);
130         assertEquals(searchTerm[1], cursor.getString(index));
131         index = cursor.getColumnIndex(SearchColumns.DATE);
132         assertTrue(-1 != index);
133         assertEquals(searchTime[1], cursor.getLong(index));
134         getContentResolver().delete(uri[1], null, null);
135         cursor = getContentResolver().query(uri[1], null, null, null, null);
136         assertNotNull(cursor);
137         assertEquals(0, cursor.getCount());
138     }
139
140     // Copied from CTS test with minor adaptations.
141     /**
142      * @MediumTest
143      * @Feature({"Android-ContentProvider"})
144      * BUG 154683
145      */
146     @DisabledTest
147     public void testSearchesTable() {
148         final int idIndex = 0;
149         String insertSearch = "search_insert";
150         String updateSearch = "search_update";
151
152         // Test: insert
153         ContentValues value = new ContentValues();
154         long createDate = new Date().getTime();
155         value.put(SearchColumns.SEARCH, insertSearch);
156         value.put(SearchColumns.DATE, createDate);
157
158         Uri insertUri = getContentResolver().insert(mSearchesUri, value);
159         Cursor cursor = getContentResolver().query(mSearchesUri,
160                 Browser.SEARCHES_PROJECTION, SearchColumns.SEARCH + " = ?",
161                 new String[] { insertSearch }, null);
162         assertTrue(cursor.moveToNext());
163         assertEquals(insertSearch,
164                 cursor.getString(Browser.SEARCHES_PROJECTION_SEARCH_INDEX));
165         assertEquals(createDate,
166                 cursor.getLong(Browser.SEARCHES_PROJECTION_DATE_INDEX));
167         int id = cursor.getInt(idIndex);
168         cursor.close();
169
170         // Test: update
171         value.clear();
172         long updateDate = new Date().getTime();
173         value.put(SearchColumns.SEARCH, updateSearch);
174         value.put(SearchColumns.DATE, updateDate);
175
176         getContentResolver().update(mSearchesUri, value,
177                 SearchColumns._ID + " = " + id, null);
178         cursor = getContentResolver().query(mSearchesUri,
179                 Browser.SEARCHES_PROJECTION,
180                 SearchColumns._ID + " = " + id, null, null);
181         assertTrue(cursor.moveToNext());
182         assertEquals(updateSearch,
183                 cursor.getString(Browser.SEARCHES_PROJECTION_SEARCH_INDEX));
184         assertEquals(updateDate,
185                 cursor.getLong(Browser.SEARCHES_PROJECTION_DATE_INDEX));
186         assertEquals(id, cursor.getInt(idIndex));
187
188         // Test: delete
189         getContentResolver().delete(insertUri, null, null);
190         cursor = getContentResolver().query(mSearchesUri,
191                 Browser.SEARCHES_PROJECTION,
192                 SearchColumns._ID + " = " + id, null, null);
193         assertEquals(0, cursor.getCount());
194     }
195 }