Skip to content

Commit 80cfb93

Browse files
committed
Swift: Add some tests.
1 parent 8be6aed commit 80cfb93

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
// --- stubs ---
3+
4+
struct URL
5+
{
6+
init?(string: String) {}
7+
}
8+
9+
extension String {
10+
init(contentsOf: URL) throws {
11+
self.init("")
12+
}
13+
}
14+
15+
class NSObject {
16+
}
17+
18+
class NSString : NSObject {
19+
init(string: String) { }
20+
}
21+
22+
class Sql {
23+
}
24+
25+
class MyDatabase {
26+
init(sql code: String? = nil) { }
27+
28+
func execute1(_ sql: String) { }
29+
func execute2(_ sql: String?) { }
30+
func execute3(_ sql: NSString) { }
31+
func execute4(_ sql: Sql) { }
32+
33+
func query(sql: String) { }
34+
func query(sqlLiteral: String) { }
35+
func query(sqlStatement: String) { }
36+
func query(sqliteStatement: String) { }
37+
38+
// non-examples
39+
func doSomething(sqlIndex: Int) { }
40+
func doSomething(sqliteContext: Sql) { }
41+
}
42+
43+
// --- tests ---
44+
45+
func test_heuristic(db: MyDatabase) throws {
46+
let remoteString = try String(contentsOf: URL(string: "http://example.com/")!)
47+
48+
_ = MyDatabase()
49+
_ = MyDatabase(sql: "some_fixed_sql")
50+
_ = MyDatabase(sql: remoteString) // BAD [NOT DETECTED]
51+
52+
db.execute1(remoteString) // BAD [NOT DETECTED]
53+
db.execute2(remoteString) // BAD [NOT DETECTED]
54+
db.execute3(NSString(string: remoteString)) // BAD [NOT DETECTED]
55+
db.execute4(remoteString as! Sql) // BAD [NOT DETECTED]
56+
57+
db.query(sql: remoteString) // BAD [NOT DETECTED]
58+
db.query(sqlLiteral: remoteString) // BAD [NOT DETECTED]
59+
db.query(sqlStatement: remoteString) // BAD [NOT DETECTED]
60+
db.query(sqliteStatement: remoteString) // BAD [NOT DETECTED]
61+
62+
db.doSomething(sqlIndex: Int(remoteString) ?? 0)
63+
db.doSomething(sqliteContext: remoteString as! Sql)
64+
}

0 commit comments

Comments
 (0)