@@ -18,6 +18,34 @@ import (
1818const initialActionRepository = "./pull_test/codeql-action-initial.git"
1919const modifiedActionRepository = "./pull_test/codeql-action-modified.git"
2020
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+
2149func getTestPullService (t * testing.T , temporaryDirectory string , gitCloneURL string , githubURL string ) pullService {
2250 cacheDirectory := cachedirectory .NewCacheDirectory (temporaryDirectory )
2351 var githubDotComClient * github.Client
@@ -123,43 +151,43 @@ func TestPullReleases(t *testing.T) {
123151 temporaryDirectory := test .CreateTemporaryDirectory (t )
124152 githubTestServer , githubURL := test .GetTestHTTPServer (t )
125153 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 )
127155 }).Methods ("GET" )
128156 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 )
130158 }).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
131159 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 )
133161 }).Methods ("GET" )
134162 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 )
136164 }).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
137165 pullService := getTestPullService (t , temporaryDirectory , initialActionRepository , githubURL )
138166 err := pullService .pullGit (true )
139167 require .NoError (t , err )
140168 err = pullService .pullReleases ()
141169 require .NoError (t , err )
142170
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" ))
145173
146174 // If we pull again, we should only download assets where the size mismatches.
147175 err = ioutil .WriteFile (pullService .cacheDirectory .AssetPath ("some-codeql-version-on-v1-and-v2" , "codeql-bundle.tar.gz" ), []byte ("Some nonsense." ), 0644 )
148176 require .NoError (t , err )
149177 githubTestServer , githubURL = test .GetTestHTTPServer (t )
150178 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 )
152180 }).Methods ("GET" )
153181 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 )
155183 }).Methods ("GET" )
156184 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 )
158186 }).Methods ("GET" ).Headers ("accept" , "application/octet-stream" )
159187 pullService = getTestPullService (t , temporaryDirectory , initialActionRepository , githubURL )
160188 err = pullService .pullReleases ()
161189 require .NoError (t , err )
162190
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" ))
165193}
0 commit comments