Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a13e845

Browse files
committed
Java: tests for android database sinks
1 parent 39f5284 commit a13e845

4 files changed

Lines changed: 439 additions & 0 deletions

File tree

Lines changed: 359 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,359 @@
1+
import android.content.ContentProvider;
2+
import android.content.ContentResolver;
3+
import android.content.ContentValues;
4+
import android.content.Context;
5+
import android.database.DatabaseUtils;
6+
import android.database.sqlite.SQLiteDatabase;
7+
import android.database.sqlite.SQLiteQueryBuilder;
8+
import android.net.Uri;
9+
import android.os.CancellationSignal;
10+
11+
public class Sinks {
12+
public static <T> T taint() {
13+
return null;
14+
}
15+
16+
private static abstract class MyContentProvider extends ContentProvider {
17+
// Dummy class to test for sub classes
18+
}
19+
20+
private static abstract class MyContentResolver extends ContentResolver {
21+
// Dummy class to test for sub classes
22+
}
23+
private static abstract class MySQLiteQueryBuilder extends SQLiteQueryBuilder {
24+
// Dummy class to test for sub classes
25+
}
26+
27+
public static void compileStatement(SQLiteDatabase target) {
28+
String sql = taint();
29+
target.compileStatement(sql);
30+
}
31+
32+
public static void delete1(MySQLiteQueryBuilder target) {
33+
target = taint();;
34+
SQLiteDatabase db = taint();
35+
String selection = taint();
36+
String[] selectionArgs = taint();
37+
target.delete(db, selection, selectionArgs);
38+
}
39+
40+
public static void delete(SQLiteDatabase target) {
41+
String table = taint();
42+
String whereClause = taint();
43+
String[] whereArgs = taint();
44+
target.delete(table, whereClause, whereArgs);
45+
}
46+
47+
public static void delete(MyContentResolver target) {
48+
Uri uri = taint();
49+
String selection = taint();
50+
String[] selectionArgs = taint();
51+
target.delete(uri, selection, selectionArgs);
52+
}
53+
54+
public static void delete(MyContentProvider target) {
55+
Uri uri = taint();
56+
String selection = taint();
57+
String[] selectionArgs = taint();
58+
target.delete(uri, selection, selectionArgs);
59+
}
60+
61+
public static void execPerConnectionSQL(SQLiteDatabase target) {
62+
String sql = taint();
63+
Object[] bindArgs = taint();
64+
target.execPerConnectionSQL(sql, bindArgs);
65+
}
66+
67+
public static void execSQL(SQLiteDatabase target) {
68+
String sql = taint();
69+
target.execSQL(sql);
70+
}
71+
72+
public static void execSQL2(SQLiteDatabase target) {
73+
String sql = taint();
74+
Object[] bindArgs = taint();
75+
target.execSQL(sql, bindArgs);
76+
}
77+
78+
public static void insert(MySQLiteQueryBuilder target) {
79+
target = taint();;
80+
SQLiteDatabase db = taint();
81+
ContentValues values = taint();
82+
target.insert(db, values);
83+
}
84+
85+
public static void query(SQLiteDatabase target) {
86+
boolean distinct = taint();
87+
String table = taint();
88+
String[] columns = taint();
89+
String selection = taint();
90+
String[] selectionArgs = taint();
91+
String groupBy = taint();
92+
String having = taint();
93+
String orderBy = taint();
94+
String limit = taint();
95+
target.query(distinct, table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
96+
}
97+
98+
public static void query2(SQLiteDatabase target) {
99+
boolean distinct = taint();
100+
String table = taint();
101+
String[] columns = taint();
102+
String selection = taint();
103+
String[] selectionArgs = taint();
104+
String groupBy = taint();
105+
String having = taint();
106+
String orderBy = taint();
107+
String limit = taint();
108+
CancellationSignal cancellationSignal = taint();
109+
target.query(distinct, table, columns, selection, selectionArgs, groupBy, having, orderBy, limit,
110+
cancellationSignal);
111+
}
112+
113+
public static void query3(SQLiteDatabase target) {
114+
String table = taint();
115+
String[] columns = taint();
116+
String selection = taint();
117+
String[] selectionArgs = taint();
118+
String groupBy = taint();
119+
String having = taint();
120+
String orderBy = taint();
121+
target.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);
122+
}
123+
124+
public static void query4(SQLiteDatabase target) {
125+
String table = taint();
126+
String[] columns = taint();
127+
String selection = taint();
128+
String[] selectionArgs = taint();
129+
String groupBy = taint();
130+
String having = taint();
131+
String orderBy = taint();
132+
String limit = taint();
133+
target.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);
134+
}
135+
136+
public static void query(MySQLiteQueryBuilder target) {
137+
target = taint();;
138+
SQLiteDatabase db = taint();
139+
String[] projectionIn = taint();
140+
String selection = taint();
141+
String[] selectionArgs = taint();
142+
String groupBy = taint();
143+
String having = taint();
144+
String sortOrder = taint();
145+
target.query(db, projectionIn, selection, selectionArgs, groupBy, having, sortOrder);
146+
}
147+
148+
public static void query2(MySQLiteQueryBuilder target) {
149+
target = taint();;
150+
SQLiteDatabase db = taint();
151+
String[] projectionIn = taint();
152+
String selection = taint();
153+
String[] selectionArgs = taint();
154+
String groupBy = taint();
155+
String having = taint();
156+
String sortOrder = taint();
157+
String limit = taint();
158+
target.query(db, projectionIn, selection, selectionArgs, groupBy, having, sortOrder, limit);
159+
}
160+
161+
public static void query3(MySQLiteQueryBuilder target) {
162+
target = taint();;
163+
SQLiteDatabase db = taint();
164+
String[] projectionIn = taint();
165+
String selection = taint();
166+
String[] selectionArgs = taint();
167+
String groupBy = taint();
168+
String having = taint();
169+
String sortOrder = taint();
170+
String limit = taint();
171+
CancellationSignal cancellationSignal = taint();
172+
target.query(db, projectionIn, selection, selectionArgs, groupBy, having, sortOrder, limit, cancellationSignal);
173+
}
174+
175+
public static void query3(MyContentProvider target) {
176+
Uri uri = taint();
177+
String[] projection = taint();
178+
String selection = taint();
179+
String[] selectionArgs = taint();
180+
String sortOrder = taint();
181+
target.query(uri, projection, selection, selectionArgs, sortOrder);
182+
}
183+
184+
public static void query(MyContentProvider target) {
185+
Uri uri = taint();
186+
String[] projection = taint();
187+
String selection = taint();
188+
String[] selectionArgs = taint();
189+
String sortOrder = taint();
190+
CancellationSignal cancellationSignal = taint();
191+
target.query(uri, projection, selection, selectionArgs, sortOrder, cancellationSignal);
192+
}
193+
194+
public static void query3(MyContentResolver target) {
195+
Uri uri = taint();
196+
String[] projection = taint();
197+
String selection = taint();
198+
String[] selectionArgs = taint();
199+
String sortOrder = taint();
200+
target.query(uri, projection, selection, selectionArgs, sortOrder);
201+
}
202+
203+
public static void query(MyContentResolver target) {
204+
Uri uri = taint();
205+
String[] projection = taint();
206+
String selection = taint();
207+
String[] selectionArgs = taint();
208+
String sortOrder = taint();
209+
CancellationSignal cancellationSignal = taint();
210+
target.query(uri, projection, selection, selectionArgs, sortOrder, cancellationSignal);
211+
}
212+
213+
public static void queryWithFactory(SQLiteDatabase target) {
214+
SQLiteDatabase.CursorFactory cursorFactory = taint();
215+
boolean distinct = taint();
216+
String table = taint();
217+
String[] columns = taint();
218+
String selection = taint();
219+
String[] selectionArgs = taint();
220+
String groupBy = taint();
221+
String having = taint();
222+
String orderBy = taint();
223+
String limit = taint();
224+
target.queryWithFactory(cursorFactory, distinct, table, columns, selection, selectionArgs, groupBy, having,
225+
orderBy, limit);
226+
}
227+
228+
public static void queryWithFactory2(SQLiteDatabase target) {
229+
SQLiteDatabase.CursorFactory cursorFactory = taint();
230+
boolean distinct = taint();
231+
String table = taint();
232+
String[] columns = taint();
233+
String selection = taint();
234+
String[] selectionArgs = taint();
235+
String groupBy = taint();
236+
String having = taint();
237+
String orderBy = taint();
238+
String limit = taint();
239+
CancellationSignal cancellationSignal = taint();
240+
target.queryWithFactory(cursorFactory, distinct, table, columns, selection, selectionArgs, groupBy, having,
241+
orderBy, limit, cancellationSignal);
242+
}
243+
244+
public static void rawQuery(SQLiteDatabase target) {
245+
String sql = taint();
246+
String[] selectionArgs = taint();
247+
target.rawQuery(sql, selectionArgs);
248+
}
249+
250+
public static void rawQuery2(SQLiteDatabase target) {
251+
String sql = taint();
252+
String[] selectionArgs = taint();
253+
CancellationSignal cancellationSignal = taint();
254+
target.rawQuery(sql, selectionArgs, cancellationSignal);
255+
}
256+
257+
public static void rawQueryWithFactory(SQLiteDatabase target) {
258+
SQLiteDatabase.CursorFactory cursorFactory = taint();
259+
String sql = taint();
260+
String[] selectionArgs = taint();
261+
String editTable = taint();
262+
target.rawQueryWithFactory(cursorFactory, sql, selectionArgs, editTable);
263+
}
264+
265+
public static void rawQueryWithFactory2(SQLiteDatabase target) {
266+
SQLiteDatabase.CursorFactory cursorFactory = taint();
267+
String sql = taint();
268+
String[] selectionArgs = taint();
269+
String editTable = taint();
270+
CancellationSignal cancellationSignal = taint();
271+
target.rawQueryWithFactory(cursorFactory, sql, selectionArgs, editTable, cancellationSignal);
272+
}
273+
274+
public static void update(MySQLiteQueryBuilder target) {
275+
target = taint();;
276+
SQLiteDatabase db = taint();
277+
ContentValues values = taint();
278+
String selection = taint();
279+
String[] selectionArgs = taint();
280+
target.update(db, values, selection, selectionArgs);
281+
}
282+
283+
public static void update(SQLiteDatabase target) {
284+
String table = taint();
285+
ContentValues values = taint();
286+
String whereClause = taint();
287+
String[] whereArgs = taint();
288+
target.update(table, values, whereClause, whereArgs);
289+
}
290+
291+
public static void update(MyContentResolver target) {
292+
Uri uri = taint();
293+
ContentValues values = taint();
294+
String selection = taint();
295+
String[] selectionArgs = taint();
296+
target.update(uri, values, selection, selectionArgs);
297+
}
298+
299+
public static void update(MyContentProvider target) {
300+
Uri uri = taint();
301+
ContentValues values = taint();
302+
String selection = taint();
303+
String[] selectionArgs = taint();
304+
target.update(uri, values, selection, selectionArgs);
305+
}
306+
307+
public static void updateWithOnConflict(SQLiteDatabase target) {
308+
String table = taint();
309+
ContentValues values = taint();
310+
String whereClause = taint();
311+
String[] whereArgs = taint();
312+
int conflictAlgorithm = taint();
313+
target.updateWithOnConflict(table, values, whereClause, whereArgs, conflictAlgorithm);
314+
}
315+
316+
public static void queryNumEntries() {
317+
SQLiteDatabase db = taint();
318+
String table = taint();
319+
String selection = taint();
320+
DatabaseUtils.queryNumEntries(db, table, selection);
321+
}
322+
323+
public static void queryNumEntries2() {
324+
SQLiteDatabase db = taint();
325+
String table = taint();
326+
String selection = taint();
327+
String[] selectionArgs = taint();
328+
DatabaseUtils.queryNumEntries(db, table, selection, selectionArgs);
329+
}
330+
331+
public static void createDbFromSqlStatements() {
332+
Context context = taint();
333+
String dbName = taint();
334+
int dbVersion = taint();
335+
String sqlStatements = taint();
336+
DatabaseUtils.createDbFromSqlStatements(context, dbName, dbVersion, sqlStatements);
337+
}
338+
339+
public static void blobFileDescriptorForQuery() {
340+
SQLiteDatabase db = taint();
341+
String query = taint();
342+
String[] selectionArgs = taint();
343+
DatabaseUtils.blobFileDescriptorForQuery(db, query, selectionArgs);
344+
}
345+
346+
public static void longForQuery() {
347+
SQLiteDatabase db = taint();
348+
String query = taint();
349+
String[] selectionArgs = taint();
350+
DatabaseUtils.longForQuery(db, query, selectionArgs);
351+
}
352+
353+
public static void stringForQuery() {
354+
SQLiteDatabase db = taint();
355+
String query = taint();
356+
String[] selectionArgs = taint();
357+
DatabaseUtils.stringForQuery(db, query, selectionArgs);
358+
}
359+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/android

0 commit comments

Comments
 (0)