@@ -18,6 +18,34 @@ import (
18
18
const initialActionRepository = "./pull_test/codeql-action-initial.git"
19
19
const modifiedActionRepository = "./pull_test/codeql-action-modified.git"
20
20
21
+ const releaseSomeCodeQLVersionOnMainContent = "This isn't really a CodeQL bundle!"
22
+
23
+ var releaseSomeCodeQLVersionOnMain = github.RepositoryRelease {
24
+ TagName : github .String ("some-codeql-version-on-main" ),
25
+ Name : github .String ("some-codeql-version-on-main" ),
26
+ Assets : []* github.ReleaseAsset {
27
+ & github.ReleaseAsset {
28
+ ID : github .Int64 (1 ),
29
+ Name : github .String ("codeql-bundle.tar.gz" ),
30
+ Size : github .Int (len (releaseSomeCodeQLVersionOnMainContent )),
31
+ },
32
+ },
33
+ }
34
+
35
+ const releaseSomeCodeQLVersionOnV1AndV2Content = "This isn't a CodeQL bundle either, but it's a different not-bundle."
36
+
37
+ var releaseSomeCodeQLVersionOnV1AndV2 = github.RepositoryRelease {
38
+ TagName : github .String ("some-codeql-version-on-v1-and-v2" ),
39
+ Name : github .String ("some-codeql-version-on-v1-and-v2" ),
40
+ Assets : []* github.ReleaseAsset {
41
+ & github.ReleaseAsset {
42
+ ID : github .Int64 (2 ),
43
+ Name : github .String ("codeql-bundle.tar.gz" ),
44
+ Size : github .Int (len (releaseSomeCodeQLVersionOnV1AndV2Content )),
45
+ },
46
+ },
47
+ }
48
+
21
49
func getTestPullService (t * testing.T , temporaryDirectory string , gitCloneURL string , githubURL string ) pullService {
22
50
cacheDirectory := cachedirectory .NewCacheDirectory (temporaryDirectory )
23
51
var githubDotComClient * github.Client
@@ -123,43 +151,43 @@ func TestPullReleases(t *testing.T) {
123
151
temporaryDirectory := test .CreateTemporaryDirectory (t )
124
152
githubTestServer , githubURL := test .GetTestHTTPServer (t )
125
153
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/tags/some-codeql-version-on-main" , func (response http.ResponseWriter , request * http.Request ) {
126
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/release-some-codeql-version-on-main.json" , response )
154
+ test .ServeHTTPResponseFromObject (t , releaseSomeCodeQLVersionOnMain , response )
127
155
}).Methods ("GET" )
128
156
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/assets/1" , func (response http.ResponseWriter , request * http.Request ) {
129
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/asset-some-codeql-version-on-main.bin" , response )
157
+ test .ServeHTTPResponseFromString (t , releaseSomeCodeQLVersionOnMainContent , response )
130
158
}).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
131
159
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/tags/some-codeql-version-on-v1-and-v2" , func (response http.ResponseWriter , request * http.Request ) {
132
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/release-some-codeql-version-on-v1-and-v2.json" , response )
160
+ test .ServeHTTPResponseFromObject (t , releaseSomeCodeQLVersionOnV1AndV2 , response )
133
161
}).Methods ("GET" )
134
162
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/assets/2" , func (response http.ResponseWriter , request * http.Request ) {
135
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/asset-some-codeql-version-on-v1-and-v2.bin" , response )
163
+ test .ServeHTTPResponseFromString (t , releaseSomeCodeQLVersionOnV1AndV2Content , response )
136
164
}).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
137
165
pullService := getTestPullService (t , temporaryDirectory , initialActionRepository , githubURL )
138
166
err := pullService .pullGit (true )
139
167
require .NoError (t , err )
140
168
err = pullService .pullReleases ()
141
169
require .NoError (t , err )
142
170
143
- test .RequireFilesAreEqual (t , "./pull_test/api/asset-some-codeql-version-on-main.bin" , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-main" , "codeql-bundle.tar.gz" ))
144
- test .RequireFilesAreEqual (t , "./pull_test/api/asset-some-codeql-version-on-v1-and-v2.bin" , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ))
171
+ test .RequireFileHasContent (t , releaseSomeCodeQLVersionOnMainContent , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-main" , "codeql-bundle.tar.gz" ))
172
+ test .RequireFileHasContent (t , releaseSomeCodeQLVersionOnV1AndV2Content , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ))
145
173
146
174
// If we pull again, we should only download assets where the size mismatches.
147
175
err = ioutil .WriteFile (pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ), []byte ("Some nonsense." ), 0644 )
148
176
require .NoError (t , err )
149
177
githubTestServer , githubURL = test .GetTestHTTPServer (t )
150
178
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/tags/some-codeql-version-on-main" , func (response http.ResponseWriter , request * http.Request ) {
151
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/release-some-codeql-version-on-main.json" , response )
179
+ test .ServeHTTPResponseFromObject (t , releaseSomeCodeQLVersionOnMain , response )
152
180
}).Methods ("GET" )
153
181
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/tags/some-codeql-version-on-v1-and-v2" , func (response http.ResponseWriter , request * http.Request ) {
154
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/release-some-codeql-version-on-v1-and-v2.json" , response )
182
+ test .ServeHTTPResponseFromObject (t , releaseSomeCodeQLVersionOnV1AndV2 , response )
155
183
}).Methods ("GET" )
156
184
githubTestServer .HandleFunc ("/api/v3/repos/github/codeql-action/releases/assets/2" , func (response http.ResponseWriter , request * http.Request ) {
157
- test .ServeHTTPResponseFromFile (t , http . StatusOK , "./pull_test/api/asset-some-codeql-version-on-v1-and-v2.bin" , response )
185
+ test .ServeHTTPResponseFromString (t , releaseSomeCodeQLVersionOnV1AndV2Content , response )
158
186
}).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
159
187
pullService = getTestPullService (t , temporaryDirectory , initialActionRepository , githubURL )
160
188
err = pullService .pullReleases ()
161
189
require .NoError (t , err )
162
190
163
- test .RequireFilesAreEqual (t , "./pull_test/api/asset-some-codeql-version-on-main.bin" , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-main" , "codeql-bundle.tar.gz" ))
164
- test .RequireFilesAreEqual (t , "./pull_test/api/asset-some-codeql-version-on-v1-and-v2.bin" , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ))
191
+ test .RequireFileHasContent (t , releaseSomeCodeQLVersionOnMainContent , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-main" , "codeql-bundle.tar.gz" ))
192
+ test .RequireFileHasContent (t , releaseSomeCodeQLVersionOnV1AndV2Content , pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ))
165
193
}
0 commit comments