1package com.parseable.android
3import com.parseable.android.data.escapeIdentifier
4import com.parseable.android.data.escapeSql
5import org.junit.Assert.assertEquals
11 fun `escapeSql replaces single quotes`() {
12 assertEquals("it''s", escapeSql("it's"))
16 fun `escapeSql handles multiple single quotes`() {
17 assertEquals("it''s a ''test''", escapeSql("it's a 'test'"))
21 fun `escapeSql handles empty string`() {
22 assertEquals("", escapeSql(""))
26 fun `escapeSql handles string without quotes`() {
27 assertEquals("hello world", escapeSql("hello world"))
31 fun `escapeSql handles consecutive quotes`() {
32 assertEquals("''''", escapeSql("''"))
36 fun `escapeSql does not alter double quotes`() {
37 assertEquals("say \"hello\"", escapeSql("say \"hello\""))
41 fun `escapeSql handles backslash`() {
42 assertEquals("path\\to\\file", escapeSql("path\\to\\file"))
46 fun `escapeSql handles semicolons`() {
47 assertEquals("; DROP TABLE users --", escapeSql("; DROP TABLE users --"))
51 fun `escapeSql handles quote injection attempt`() {
52 assertEquals("''; DROP TABLE users --", escapeSql("'; DROP TABLE users --"))
56 fun `escapeIdentifier doubles double quotes`() {
57 assertEquals("foo\"\"bar", escapeIdentifier("foo\"bar"))
61 fun `escapeIdentifier handles no quotes`() {
62 assertEquals("my_stream", escapeIdentifier("my_stream"))
66 fun `escapeIdentifier handles empty string`() {
67 assertEquals("", escapeIdentifier(""))
71 fun `escapeIdentifier handles consecutive double quotes`() {
72 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