You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ra...@apache.org on 2019/08/30 21:22:11 UTC

[trafficcontrol] 02/02: add tests

This is an automated email from the ASF dual-hosted git repository.

rawlin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit c18d535022fef2ab8b893851e3e811c5427aa540
Author: Rawlin Peters <ra...@comcast.com>
AuthorDate: Fri Aug 30 14:43:05 2019 -0600

    add tests
---
 traffic_ops/testing/api/v14/loginfail_test.go      |  9 ++++++
 traffic_ops/traffic_ops_golang/login/login_test.go | 32 +++++++++++++++++++++-
 2 files changed, 40 insertions(+), 1 deletion(-)

diff --git a/traffic_ops/testing/api/v14/loginfail_test.go b/traffic_ops/testing/api/v14/loginfail_test.go
index 36264b9..71bc226 100644
--- a/traffic_ops/testing/api/v14/loginfail_test.go
+++ b/traffic_ops/testing/api/v14/loginfail_test.go
@@ -30,6 +30,7 @@ import (
 func TestLoginFail(t *testing.T) {
 	WithObjs(t, []TCObj{CDNs}, func() {
 		PostTestLoginFail(t)
+		LoginWithEmptyCredentialsTest(t)
 	})
 }
 
@@ -59,6 +60,14 @@ func PostTestLoginFail(t *testing.T) {
 	}
 }
 
+func LoginWithEmptyCredentialsTest(t *testing.T) {
+	userAgent := "to-api-v14-client-tests-loginfailtest"
+	_, _, err := toclient.LoginWithAgent(Config.TrafficOps.URL, Config.TrafficOps.Users.Admin, "", true, userAgent, false, time.Second*time.Duration(Config.Default.Session.TimeoutInSecs))
+	if err == nil {
+		t.Fatalf("expected error when logging in with empty credentials, actual nil")
+	}
+}
+
 func getUninitializedTOClient(user, pass, uri, agent string, reqTimeout time.Duration) (*toclient.Session, error) {
 	insecure := true
 	useCache := false
diff --git a/traffic_ops/traffic_ops_golang/login/login_test.go b/traffic_ops/traffic_ops_golang/login/login_test.go
index cd522a8..15f8700 100644
--- a/traffic_ops/traffic_ops_golang/login/login_test.go
+++ b/traffic_ops/traffic_ops_golang/login/login_test.go
@@ -19,7 +19,37 @@ package login
  * under the License.
  */
 
-import "testing"
+import (
+	"net/http"
+	"net/http/httptest"
+	"strings"
+	"testing"
+
+	"github.com/apache/trafficcontrol/traffic_ops/traffic_ops_golang/config"
+)
+
+func TestLoginWithEmptyCredentials(t *testing.T) {
+	testInputs := []string{
+		`{"u":"","p":""}`,
+		`{"u":"foo","p":""}`,
+		`{"u":"","p":"foo"}`,
+	}
+
+	for _, testInput := range testInputs {
+		w := httptest.NewRecorder()
+		body := strings.NewReader(testInput)
+		r, err := http.NewRequest(http.MethodPost, "login", body)
+		if err != nil {
+			t.Error("Error creating new request")
+		}
+		LoginHandler(nil, config.Config{})(w, r)
+
+		expected := `{"alerts":[{"text":"username and password are required","level":"error"}]}`
+		if w.Body.String() != expected {
+			t.Error("Expected body", expected, "got", w.Body.String())
+		}
+	}
+}
 
 func TestVerifyUrlOnWhiteList(t *testing.T) {
 	type TestResult struct {