@@ -75,7 +75,120 @@ func TestValidateODMLNoData(t *testing.T) {
75
75
}
76
76
}
77
77
78
- /*func TestValidateBadgeFail(t *testing.T) { //TODO
78
+ func TestValidateBIDSOK (t * testing.T ) {
79
+ resultfldr , _ := ioutil .TempDir ("" , "results" )
80
+ tempdataset , _ := ioutil .TempDir ("" , "tempdataset" )
81
+ f , err := os .Create (filepath .Join (tempdataset , "ginvalidation.yaml" ))
82
+ defer f .Close ()
83
+ if err != nil {
84
+ t .Fatalf (`validateBIDS(valroot, resdir string) = %v` , err )
85
+ }
86
+ _ , err = f .WriteString ("bidsconfig:\n bidsroot: \" bids_example\" " )
87
+ if err != nil {
88
+ t .Fatalf (`validateBIDS(valroot, resdir string) = %v` , err )
89
+ }
90
+ os .Mkdir (filepath .Join (tempdataset , "bids_example" ), 0664 )
91
+ srvcfg := config .Read ()
92
+ srvcfg .Dir .Result = resultfldr
93
+ config .Set (srvcfg )
94
+ validateBIDS (tempdataset , resultfldr )
95
+ }
96
+
97
+ func TestValidateNIXOK (t * testing.T ) {
98
+ resultfldr , _ := ioutil .TempDir ("" , "results" )
99
+ tempdataset , _ := ioutil .TempDir ("" , "tempdataset" )
100
+ nix , err := ioutil .ReadFile ("../../resources/nixdata.nix" )
101
+ if err != nil {
102
+ t .Fatalf (`validateNIX(valroot, resdir string) = %v` , err )
103
+ }
104
+ err = ioutil .WriteFile (filepath .Join (tempdataset , "nixdata.nix" ), nix , 0664 )
105
+ if err != nil {
106
+ t .Fatalf (`validateNIX(valroot, resdir string) = %v` , err )
107
+ }
108
+ os .Mkdir (filepath .Join (tempdataset , ".git" ), 0755 )
109
+ nix = append ([]byte ("WTF_this_will_not_work" ), nix ... )
110
+ err = ioutil .WriteFile (filepath .Join (tempdataset , ".git" , "nixdata_donottest.nix" ), nix , 0664 )
111
+ if err != nil {
112
+ t .Fatalf (`validateNIX(valroot, resdir string) = %v` , err )
113
+ }
114
+ srvcfg := config .Read ()
115
+ srvcfg .Dir .Result = resultfldr
116
+ config .Set (srvcfg )
117
+ validateNIX (tempdataset , resultfldr )
118
+ }
119
+
120
+ func TestValidateODMLOK (t * testing.T ) {
121
+ resultfldr , _ := ioutil .TempDir ("" , "results" )
122
+ tempdataset , _ := ioutil .TempDir ("" , "tempdataset" )
123
+ odml , err := ioutil .ReadFile ("../../resources/odmldata.odml" )
124
+ if err != nil {
125
+ t .Fatalf (`validateODML(valroot, resdir string) = %v` , err )
126
+ }
127
+ err = ioutil .WriteFile (filepath .Join (tempdataset , "odmldata.odml" ), odml , 0664 )
128
+ if err != nil {
129
+ t .Fatalf (`validateODML(valroot, resdir string) = %v` , err )
130
+ }
131
+ os .Mkdir (filepath .Join (tempdataset , ".git" ), 0755 )
132
+ odml = append ([]byte ("WTF_this_will_not_work" ), odml ... )
133
+ err = ioutil .WriteFile (filepath .Join (tempdataset , ".git" , "odmldata_donottest.odml" ), odml , 0664 )
134
+ if err != nil {
135
+ t .Fatalf (`validateODML(valroot, resdir string) = %v` , err )
136
+ }
137
+ srvcfg := config .Read ()
138
+ srvcfg .Dir .Result = resultfldr
139
+ config .Set (srvcfg )
140
+ validateODML (tempdataset , resultfldr )
141
+ }
142
+
143
+ /*func TestValidateBIDSOK(t *testing.T) {
144
+ testValidateOK(t,"bids")
145
+ }
146
+
147
+ func TestValidateNIXOK(t *testing.T) {
148
+ testValidateOK(t,"nix")
149
+ }
150
+
151
+ func TestValidateODMLOK(t *testing.T) {
152
+ testValidateOK(t,"odml")
153
+ }
154
+
155
+ func testValidateOK(t *testing.T, validator string) {
156
+ body := []byte("{\"after\": \"8cea328d5ee9d6d8944bd06802f761f140a31653\"}")
157
+ router := mux.NewRouter()
158
+ router.HandleFunc("/validate/{validator}/{user}/{repo}", Validate).Methods("POST")
159
+ srvcfg := config.Read()
160
+ srvcfg.Dir.Tokens = "."
161
+ os.Mkdir("tmp", 0755)
162
+ srvcfg.Dir.Temp = "./tmp"
163
+ srvcfg.GINAddresses.WebURL = weburl
164
+ srvcfg.GINAddresses.GitURL = giturl
165
+ config.Set(srvcfg)
166
+ var tok gweb.UserToken
167
+ tok.Username = username
168
+ tok.Token = token
169
+ saveToken(tok)
170
+ os.Mkdir(filepath.Join(srvcfg.Dir.Tokens, "by-repo"), 0755)
171
+ linkToRepo(username, filepath.Join(username, "/", reponame))
172
+ r, err := http.NewRequest("POST", filepath.Join("/validate", validator, username, reponame), bytes.NewReader(body))
173
+ if err != nil {
174
+ t.Fatalf(`Validate(w http.ResponseWriter, r *http.Request) = %v`, err)
175
+ }
176
+ w := httptest.NewRecorder()
177
+ sig := hmac.New(sha256.New, []byte(srvcfg.Settings.HookSecret))
178
+ sig.Write(body)
179
+ r.Header.Add("X-Gogs-Signature", hex.EncodeToString(sig.Sum(nil)))
180
+ router.ServeHTTP(w, r)
181
+ time.Sleep(5 * time.Second) //TODO HACK
182
+ os.RemoveAll(filepath.Join(srvcfg.Dir.Tokens, "by-repo"))
183
+ os.RemoveAll("tmp")
184
+ status := w.Code
185
+ if status != http.StatusOK {
186
+ t.Fatalf(`Validate(w http.ResponseWriter, r *http.Request) status code = %v`, status)
187
+ }
188
+
189
+ }
190
+
191
+ func TestValidateBadgeFail(t *testing.T) {
79
192
body := []byte("{}")
80
193
router := mux.NewRouter()
81
194
router.HandleFunc("/validate/{validator}/{user}/{repo}", Validate).Methods("POST")
@@ -194,6 +307,7 @@ func TestValidatePub(t *testing.T) {
194
307
sig.Write(body)
195
308
r.Header.Add("X-Gogs-Signature", hex.EncodeToString(sig.Sum(nil)))
196
309
router.ServeHTTP(w, r)
310
+ os.RemoveAll(filepath.Join(srvcfg.Dir.Tokens, "by-repo"))
197
311
time.Sleep(5 * time.Second) //TODO HACK
198
312
status := w.Code
199
313
if status != http.StatusOK {
@@ -227,6 +341,7 @@ func TestValidateRepoDoesNotExists(t *testing.T) {
227
341
r .Header .Add ("X-Gogs-Signature" , hex .EncodeToString (sig .Sum (nil )))
228
342
router .ServeHTTP (w , r )
229
343
time .Sleep (5 * time .Second ) //TODO HACK
344
+ os .RemoveAll (filepath .Join (srvcfg .Dir .Tokens , "by-repo" ))
230
345
status := w .Code
231
346
if status != http .StatusNotFound {
232
347
t .Fatalf (`Validate(w http.ResponseWriter, r *http.Request) status code = %v` , status )
0 commit comments