1package com.parseable.android
3import com.parseable.android.data.escapeIdentifier
4import com.parseable.android.data.escapeLikePattern
5import com.parseable.android.data.escapeSql
6import org.junit.Assert.assertEquals
12 fun `escapeSql replaces single quotes`() {
13 assertEquals("it''s", escapeSql("it's"))
17 fun `escapeSql handles multiple single quotes`() {
18 assertEquals("it''s a ''test''", escapeSql("it's a 'test'"))
22 fun `escapeSql handles empty string`() {
23 assertEquals("", escapeSql(""))
27 fun `escapeSql handles string without quotes`() {
28 assertEquals("hello world", escapeSql("hello world"))
32 fun `escapeSql handles consecutive quotes`() {
33 assertEquals("''''", escapeSql("''"))
37 fun `escapeSql does not alter double quotes`() {
38 assertEquals("say \"hello\"", escapeSql("say \"hello\""))
42 fun `escapeSql handles backslash`() {
43 assertEquals("path\\to\\file", escapeSql("path\\to\\file"))
47 fun `escapeSql handles semicolons`() {
48 assertEquals("; DROP TABLE users --", escapeSql("; DROP TABLE users --"))
52 fun `escapeSql handles quote injection attempt`() {
53 assertEquals("''; DROP TABLE users --", escapeSql("'; DROP TABLE users --"))
57 fun `escapeLikePattern escapes percent wildcard`() {
58 assertEquals("100\\%", escapeLikePattern("100%"))
62 fun `escapeLikePattern escapes underscore wildcard`() {
63 assertEquals("a\\_b", escapeLikePattern("a_b"))
67 fun `escapeLikePattern escapes backslash before wildcards`() {
68 // Input backslash becomes a doubled backslash; %/_ each gain one escape.
69 assertEquals("\\\\\\%\\_", escapeLikePattern("\\%_"))
73 fun `escapeLikePattern also escapes single quotes`() {
74 assertEquals("it''s 50\\%", escapeLikePattern("it's 50%"))
78 fun `escapeLikePattern leaves plain text untouched`() {
79 assertEquals("hello world", escapeLikePattern("hello world"))
83 fun `escapeIdentifier doubles double quotes`() {
84 assertEquals("foo\"\"bar", escapeIdentifier("foo\"bar"))
88 fun `escapeIdentifier handles no quotes`() {
89 assertEquals("my_stream", escapeIdentifier("my_stream"))
93 fun `escapeIdentifier handles empty string`() {
94 assertEquals("", escapeIdentifier(""))
98 fun `escapeIdentifier handles consecutive double quotes`() {
99 assertEquals("\"\"\"\"", escapeIdentifier("\"\""))
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list