aboutsummaryrefslogtreecommitdiff
path: root/sqlite3_opt_userauth_test.go
diff options
context:
space:
mode:
authorGert-Jan Timmer <gjr.timmer@gmail.com>2018-05-31 16:42:03 +0200
committerGert-Jan Timmer <gjr.timmer@gmail.com>2018-05-31 16:42:03 +0200
commit4a33fcc1d2d467144ec063576131d346efb1f345 (patch)
treec57197f625040e2728398de896673b38e1161479 /sqlite3_opt_userauth_test.go
parentUPD: TestAuthCreateDatabase (diff)
downloadgolite-4a33fcc1d2d467144ec063576131d346efb1f345.tar.gz
golite-4a33fcc1d2d467144ec063576131d346efb1f345.tar.xz
Stash
[ci skip]
Diffstat (limited to 'sqlite3_opt_userauth_test.go')
-rw-r--r--sqlite3_opt_userauth_test.go54
1 files changed, 49 insertions, 5 deletions
diff --git a/sqlite3_opt_userauth_test.go b/sqlite3_opt_userauth_test.go
index 649d10e..fcbcd56 100644
--- a/sqlite3_opt_userauth_test.go
+++ b/sqlite3_opt_userauth_test.go
@@ -9,6 +9,7 @@ package sqlite3
import (
"database/sql"
+ "fmt"
"os"
"testing"
)
@@ -23,11 +24,6 @@ func TestAuthCreateDatabase(t *testing.T) {
}
defer db.Close()
- // Ping database
- if err := db.Ping(); err != nil {
- t.Fatal(err)
- }
-
var exists bool
err = db.QueryRow("select count(type) from sqlite_master WHERE type='table' and name='sqlite_user';").Scan(&exists)
if err != nil {
@@ -38,3 +34,51 @@ func TestAuthCreateDatabase(t *testing.T) {
t.Fatal("failed to enable User Authentication")
}
}
+
+func TestAuthorization(t *testing.T) {
+ tempFilename := TempFilename(t)
+ fmt.Println(tempFilename)
+ //defer os.Remove(tempFilename)
+
+ db, err := sql.Open("sqlite3", "file:"+tempFilename+"?_auth&_auth_user=admin&_auth_pass=admin")
+ if err != nil {
+ t.Fatal("Failed to open database:", err)
+ }
+
+ if _, err := db.Exec("select auth_user_add('user', 'user', false);"); err != nil {
+ t.Fatal(err)
+ }
+
+ var uname string
+ if err := db.QueryRow("select uname from sqlite_user where uname = 'user';").Scan(&uname); err != nil {
+ t.Fatal(err)
+ }
+
+ if uname != "user" {
+ t.Fatal("Failed to create normal user")
+ }
+ db.Close()
+
+ // Re-Open Database as User
+ // Add User should now fail because we are not admin
+ db, err = sql.Open("sqlite3", "file:"+tempFilename+"?_auth_user=user&_auth_pass=user")
+ if err != nil {
+ t.Fatal("Failed to open database:", err)
+ }
+ defer db.Close()
+
+ // Try to create normal user
+ var rv string
+ if err := db.QueryRow("select auth_user_add('user2', 'user2', false);").Scan(&rv); err != nil {
+ t.Fatal(err)
+ }
+ fmt.Printf("RV: %v\n", rv)
+ // if rv != SQLITE_AUTH {
+ // t.Fatal("Succeeded creating user while not admin")
+ // }
+
+ // // Try to create admin user
+ // if _, err := db.Exec("select auth_user_add('admin2', 'admin2', true);"); err != nil {
+ // t.Fatal(err)
+ // }
+}