]> ruderich.org/simon Gitweb - nsscash/nsscash.git/blobdiff - main_test.go
nsscash: main_test: use existing t variable instead of a.t
[nsscash/nsscash.git] / main_test.go
index 31c9e50064f21276776f5e344edc62da53f9aad0..a5c488ee7faa929fd8fe9ad2e38b79d16af407e4 100644 (file)
@@ -156,8 +156,8 @@ func mustMakeOld(t *testing.T, paths ...string) {
        }
 }
 
-// mustMakeOld verifies that all paths have a modification time in the past,
-// as set by mustMakeOld().
+// mustBeOld verifies that all paths have a modification time in the past, as
+// set by mustMakeOld.
 func mustBeOld(t *testing.T, paths ...string) {
        for _, p := range paths {
                i, err := os.Stat(p)
@@ -198,6 +198,7 @@ func TestMainFetch(t *testing.T) {
                // Perform most tests with passwd for simplicity
                fetchPasswdCacheFileDoesNotExist,
                fetchPasswd404,
+               fetchPasswdUnexpected304,
                fetchPasswdEmpty,
                fetchPasswdInvalid,
                fetchPasswdLimits,
@@ -326,7 +327,25 @@ func fetchPasswd404(a args) {
                "status code 404")
 
        mustNotExist(t, statePath, plainPath, groupPath)
-       mustBeOld(a.t, passwdPath)
+       mustBeOld(t, passwdPath)
+}
+
+func fetchPasswdUnexpected304(a args) {
+       t := a.t
+       mustWritePasswdConfig(t, a.url)
+       mustCreate(t, passwdPath)
+
+       *a.handler = func(w http.ResponseWriter, r *http.Request) {
+               // 304
+               w.WriteHeader(http.StatusNotModified)
+       }
+
+       err := mainFetch(configPath)
+       mustBeErrorWithSubstring(t, err,
+               "status code 304 but did not send If-Modified-Since")
+
+       mustNotExist(t, statePath, plainPath, groupPath)
+       mustBeOld(t, passwdPath)
 }
 
 func fetchPasswdEmpty(a args) {