package root import ( "fmt" "io/ioutil" "os" "path/filepath" "strings" "testing" "github.com/coredns/coredns/core/dnsserver" "github.com/caddyserver/caddy" ) func TestRoot(t *testing.T) { // Predefined error substrings parseErrContent := "Error during parsing:" unableToAccessErrContent := "unable to access root path" existingDirPath, err := getTempDirPath() if err != nil { t.Fatalf("BeforeTest: Failed to find an existing directory for testing! Error was: %v", err) } nonExistingDir := filepath.Join(existingDirPath, "highly_unlikely_to_exist_dir") existingFile, err := ioutil.TempFile("", "root_test") if err != nil { t.Fatalf("BeforeTest: Failed to create temp file for testing! Error was: %v", err) } defer func() { existingFile.Close() os.Remove(existingFile.Name()) }() inaccessiblePath := getInaccessiblePath(existingFile.Name()) tests := []struct { input string shouldErr bool expectedRoot string // expected root, set to the controller. Empty for negative cases. expectedErrContent string // substring from the expected error. Empty for positive cases. }{ // positive { fmt.Sprintf(`root %s`, nonExistingDir), false, nonExistingDir, "", }, { fmt.Sprintf(`root %s`, existingDirPath), false, existingDirPath, "", }, // negative { `root `, true, "", parseErrContent, }, { fmt.Sprintf(`root %s`, inaccessiblePath), true, "", unableToAccessErrContent, }, { fmt.Sprintf(`root { %s }`, existingDirPath), true, "", parseErrContent, }, } for i, test := range tests { c := caddy.NewTestController("dns", test.input) err := setup(c) cfg := dnsserver.GetConfig(c) if test.shouldErr && err == nil { t.Errorf("Test %d: Expected error but found %s for input %s", i, err, test.input) } if err != nil { if !test.shouldErr { t.Errorf("Test %d: Expected no error but found one for input %s. Error was: %v", i, test.input, err) } if !strings.Contains(err.Error(), test.expectedErrContent) { t.Errorf("Test %d: Expected error to contain: %v, found error: %v, input: %s", i, test.expectedErrContent, err, test.input) } } // check root only if we are in a positive test. if !test.shouldErr && test.expectedRoot != cfg.Root { t.Errorf("Root not correctly set for input %s. Expected: %s, actual: %s", test.input, test.expectedRoot, cfg.Root) } } } // getTempDirPath returns the path to the system temp directory. If it does not exist - an error is returned. func getTempDirPath() (string, error) { tempDir := os.TempDir() _, err := os.Stat(tempDir) if err != nil { return "", err } return tempDir, nil } func getInaccessiblePath(file string) string { return filepath.Join("C:", "file\x00name") // null byte in filename is not allowed on Windows AND unix } ave/nodemodule-preloadmodules'>dave/nodemodule-preloadmodules Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/bindings/webcore/JSDOMConvertPromise.h (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2022-04-03[bun.js] Expose `ImageData` globallyGravatar Jarred Sumner 12-2/+1237
2022-04-02More typesGravatar Jarred Sumner 2-39/+3998
2022-04-02Add more typingsGravatar Jarred Sumner 1-2/+416
2022-04-02Add more tests for Node FSGravatar Jarred Sumner 4-1/+60
2022-04-02[bun.js] fs.readSync & fs.writeSync should return just the numberGravatar Jarred Sumner 1-24/+57
2022-04-02[bun.js] Support `mode` and `flags` as integer args in fs.openSync (instead ↵Gravatar Jarred Sumner 1-0/+6
of only object)
2022-04-02Update base.zigGravatar Jarred Sumner 1-0/+1
2022-04-02Fix GC bug when reading TypedArray from user inputGravatar Jarred Sumner 1-6/+36
2022-04-02s/Buffer/TypedArrayGravatar Jarred Sumner 1-17/+17
2022-04-02Fix mmap on macOS x64Gravatar Jarred Sumner 2-29/+27