Browse Source

test(user,vpn): write test cases for no-gw feature

Write new test cases and update the existing ones.
Mustafa Arici 8 năm trước cách đây
mục cha
commit
0353f69fd7
2 tập tin đã thay đổi với 58 bổ sung11 xóa
  1. 19 7
      user_test.go
  2. 39 4
      vpn_test.go

+ 19 - 7
user_test.go

@@ -19,9 +19,10 @@ func TestCreateNewUser(t *testing.T) {
 	// Prepare:
 	username := "testUser"
 	password := "testPasswd1234"
+	noGW := false
 
 	// Test:
-	user, err := ovpm.CreateNewUser(username, password)
+	user, err := ovpm.CreateNewUser(username, password, noGW)
 	if err != nil {
 		t.Fatalf("user can not be created: %v", err)
 	}
@@ -63,6 +64,17 @@ func TestCreateNewUser(t *testing.T) {
 		t.Errorf("user.GetCert() is expected to return '%s' but it returns '%s' %+v", user.Cert, user.GetCert(), user)
 	}
 
+	user.Delete()
+
+	// Is NoGW attr working properly?
+	noGW = true
+	user, err = ovpm.CreateNewUser(username, password, noGW)
+	if err != nil {
+		t.Fatalf("user can not be created: %v", err)
+	}
+	if user.NoGW != noGW {
+		t.Fatalf("user.NoGW is expected to be %t but it's %t instead", noGW, user.NoGW)
+	}
 }
 
 func TestUserPasswordCorrect(t *testing.T) {
@@ -74,7 +86,7 @@ func TestUserPasswordCorrect(t *testing.T) {
 
 	// Prepare:
 	initialPassword := "g00dp@ssW0rd9"
-	user, _ := ovpm.CreateNewUser("testUser", initialPassword)
+	user, _ := ovpm.CreateNewUser("testUser", initialPassword, false)
 
 	// Test:
 
@@ -93,7 +105,7 @@ func TestUserPasswordReset(t *testing.T) {
 
 	// Prepare:
 	initialPassword := "g00dp@ssW0rd9"
-	user, _ := ovpm.CreateNewUser("testUser", initialPassword)
+	user, _ := ovpm.CreateNewUser("testUser", initialPassword, false)
 
 	// Test:
 
@@ -121,7 +133,7 @@ func TestUserDelete(t *testing.T) {
 
 	// Prepare:
 	username := "testUser"
-	user, _ := ovpm.CreateNewUser(username, "1234")
+	user, _ := ovpm.CreateNewUser(username, "1234", false)
 
 	// Test:
 
@@ -160,7 +172,7 @@ func TestUserGet(t *testing.T) {
 
 	// Prepare:
 	username := "testUser"
-	user, _ := ovpm.CreateNewUser(username, "1234")
+	user, _ := ovpm.CreateNewUser(username, "1234", false)
 
 	// Test:
 	// Is user fetchable?
@@ -189,7 +201,7 @@ func TestUserGetAll(t *testing.T) {
 	for i := 0; i < count; i++ {
 		username := fmt.Sprintf("user%d", i)
 		password := fmt.Sprintf("password%d", i)
-		user, _ := ovpm.CreateNewUser(username, password)
+		user, _ := ovpm.CreateNewUser(username, password, false)
 		users = append(users, user)
 	}
 
@@ -223,7 +235,7 @@ func TestUserRenew(t *testing.T) {
 	ovpm.Init("localhost", "")
 
 	// Prepare:
-	user, _ := ovpm.CreateNewUser("user", "1234")
+	user, _ := ovpm.CreateNewUser("user", "1234", false)
 
 	// Test:
 	// Re initialize the server.

+ 39 - 4
vpn_test.go

@@ -1,8 +1,10 @@
 package ovpm
 
 import (
+	"strings"
 	"testing"
 
+	"github.com/Sirupsen/logrus"
 	"github.com/bouk/monkey"
 	"github.com/cad/ovpm/supervisor"
 )
@@ -60,7 +62,7 @@ func TestVPNDeinit(t *testing.T) {
 	// Prepare:
 	// Initialize the server.
 	Init("localhost", "")
-	u, _ := CreateNewUser("user", "p")
+	u, _ := CreateNewUser("user", "p", false)
 	u.Delete()
 
 	// Test:
@@ -170,7 +172,7 @@ func TestVPNDumpsClientConfig(t *testing.T) {
 	Init("localhost", "")
 
 	// Prepare:
-	user, _ := CreateNewUser("user", "password")
+	user, _ := CreateNewUser("user", "password", false)
 
 	// Test:
 	clientConfigBlob, err := DumpsClientConfig(user.GetUsername())
@@ -192,10 +194,14 @@ func TestVPNDumpClientConfig(t *testing.T) {
 	Init("localhost", "")
 
 	// Prepare:
-	user, _ := CreateNewUser("user", "password")
+	noGW := false
+	user, err := CreateNewUser("user", "password", noGW)
+	if err != nil {
+		t.Fatalf("can not create user: %v", err)
+	}
 
 	// Test:
-	err := DumpClientConfig(user.GetUsername(), "/tmp/user.ovpn")
+	err = DumpClientConfig(user.GetUsername(), "/tmp/user.ovpn")
 	if err != nil {
 		t.Fatalf("expected to dump client config but we got error instead: %v", err)
 	}
@@ -207,6 +213,35 @@ func TestVPNDumpClientConfig(t *testing.T) {
 	if len(clientConfigBlob) == 0 {
 		t.Fatal("expected the dump not empty but it's empty instead")
 	}
+
+	// Is noGW honored?
+	if strings.Contains(clientConfigBlob, "route-nopull") != noGW {
+		logrus.Info(clientConfigBlob)
+		t.Fatalf("client config generator doesn't honor NoGW")
+	}
+
+	user.Delete()
+
+	noGW = true
+	user, err = CreateNewUser("user", "password", noGW)
+	if err != nil {
+		t.Fatalf("can not create user: %v", err)
+	}
+
+	err = DumpClientConfig(user.GetUsername(), "/tmp/user.ovpn")
+	if err != nil {
+		t.Fatalf("expected to dump client config but we got error instead: %v", err)
+	}
+
+	// Read file.
+	clientConfigBlob = fs["/tmp/user.ovpn"]
+
+	// Is noGW honored?
+	if strings.Contains(clientConfigBlob, "route-nopull") != noGW {
+		logrus.Info(clientConfigBlob)
+		t.Fatalf("client config generator doesn't honor NoGW")
+	}
+
 }
 
 func TestVPNGetSystemCA(t *testing.T) {