+func TestFoldersEmptyValues(t *testing.T) {
+ fPrj := xsapiv1.FolderConfig{
+ Label: "testproject",
+ ClientPath: logDir + "testproject",
+ Type: xsapiv1.TypePathMap,
+ ClientData: "clientdatatest",
+ DataPathMap: xsapiv1.PathMapConfig{
+ ServerPath: "",
+ },
+ }
+ var cfg xsapiv1.FolderConfig
+ /*ServerPath is empty*/
+ assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ fPrj.DataPathMap.ServerPath = logDir + "sameserverpath"
+ fPrj.ClientPath = ""
+ /*ClientPath is Empty*/
+ assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ fPrj.ClientPath = "logDir"
+ fPrj.Type = ""
+ /*Type is empty*/
+ assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ var cfgArray []xsapiv1.FolderConfig
+ assert.Nil(t, HTTPCli.Get("/folders", &cfgArray))
+ assert.Equal(t, len(cfgArray), 0)
+}
+
+func TestFoldersPathMapConfig(t *testing.T) {
+ fPrj := xsapiv1.FolderConfig{
+ Label: "testproject",
+ ClientPath: logDir + "clientpathtest",
+ Type: xsapiv1.TypePathMap,
+ ClientData: "clientdatatest",
+ DataPathMap: xsapiv1.PathMapConfig{
+ ServerPath: logDir + "serverpath",
+ CheckFile: "checkfile",
+ },
+ }
+ var cfg xsapiv1.FolderConfig
+ /*file not present*/
+ assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ var checkFileClient = fPrj.ClientPath + "/checkfile"
+ var checkFileServer = fPrj.DataPathMap.ServerPath + "/checkfile"
+
+ /*create file*/
+ os.MkdirAll(fPrj.ClientPath, 0755)
+ fPrj.DataPathMap.CheckFile = checkFileClient
+ fPrj.DataPathMap.CheckContent = "CheckContent From Client\n"
+ file, err := os.OpenFile(checkFileClient, os.O_CREATE|os.O_RDWR, 0644)
+ if err != nil {
+ t.Log(err)
+ }
+ if err := os.Symlink(checkFileClient, checkFileServer); err != nil {
+ t.Log(err)
+ }
+ /*file content differ*/
+ assert.NotNil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ /*write same message*/
+ if _, err := file.WriteString(fPrj.DataPathMap.CheckContent); err != nil {
+ t.Log(err)
+ }
+ assert.Nil(t, HTTPCli.Post("/folders", fPrj, &cfg))
+
+ /*check server msg: ServerUID needed*/
+ var APIcfg xsapiv1.APIConfig
+ assert.Nil(t, HTTPCli.Get("/config", &APIcfg))
+ msg := "Pathmap checked message written by xds-server ID: " + APIcfg.ServerUID + "\n"
+ data, err := ioutil.ReadAll(file)
+ if err != nil {
+ t.Log(err)
+ }
+ assert.Equal(t, msg, string(data))
+
+ assert.Nil(t, HTTPCli.Delete("/folders/"+cfg.ID, &cfg))
+ var cfgArray []xsapiv1.FolderConfig
+ assert.Nil(t, HTTPCli.Get("/folders", &cfgArray))
+ assert.Equal(t, len(cfgArray), 0)
+}