package client import ( "bytes" "fmt" "io/ioutil" "net/http" "github.com/jenkins-zh/jenkins-cli/mock/mhttp" ) // PrepareForEmptyAvaiablePluginList only for test func PrepareForEmptyAvaiablePluginList(roundTripper *mhttp.MockRoundTripper, rootURL string) ( request *http.Request, response *http.Response) { request, _ = http.NewRequest("GET", fmt.Sprintf("%s/pluginManager/plugins", rootURL), nil) response = &http.Response{ StatusCode: 200, Proto: "HTTP/1.1", Request: request, Body: ioutil.NopCloser(bytes.NewBufferString(`{ "status": "ok", "data": [] }`)), } roundTripper.EXPECT(). RoundTrip(request).Return(response, nil) return } // PrepareForOneAvaiablePlugin only for test func PrepareForOneAvaiablePlugin(roundTripper *mhttp.MockRoundTripper, rootURL string) ( request *http.Request, response *http.Response) { request, _ = http.NewRequest("GET", fmt.Sprintf("%s/pluginManager/plugins", rootURL), nil) response = &http.Response{ StatusCode: 200, Proto: "HTTP/1.1", Request: request, Body: ioutil.NopCloser(bytes.NewBufferString(`{ "status": "ok", "data": [{ "name": "fake", "title": "fake" }] }`)), } roundTripper.EXPECT(). RoundTrip(request).Return(response, nil) return } // PrepareForEmptyInstalledPluginList only for test func PrepareForEmptyInstalledPluginList(roundTripper *mhttp.MockRoundTripper, rootURL string) ( request *http.Request, response *http.Response) { request, _ = http.NewRequest("GET", fmt.Sprintf("%s/pluginManager/api/json?depth=1", rootURL), nil) response = &http.Response{ StatusCode: 200, Proto: "HTTP/1.1", Request: request, Body: ioutil.NopCloser(bytes.NewBufferString(`{ "plugins": [] }`)), } roundTripper.EXPECT(). RoundTrip(request).Return(response, nil) return } // PrepareForOneInstalledPlugin only for test func PrepareForOneInstalledPlugin(roundTripper *mhttp.MockRoundTripper, rootURL string) ( request *http.Request, response *http.Response) { request, response = PrepareForEmptyInstalledPluginList(roundTripper, rootURL) response.Body = ioutil.NopCloser(bytes.NewBufferString(`{ "plugins": [{ "shortName": "fake", "version": "1.0", "hasUpdate": true, "enable": true, "active": true }] }`)) return } // PrepareFor500InstalledPluginList only for test func PrepareFor500InstalledPluginList(roundTripper *mhttp.MockRoundTripper, rootURL string) ( request *http.Request, response *http.Response) { request, response = PrepareForEmptyInstalledPluginList(roundTripper, rootURL) response.StatusCode = 500 return } // PrepareForUninstallPlugin only for test func PrepareForUninstallPlugin(roundTripper *mhttp.MockRoundTripper, rootURL, pluginName string) ( request *http.Request, response *http.Response, requestCrumb *http.Request, responseCrumb *http.Response) { request, _ = http.NewRequest("POST", fmt.Sprintf("%s/pluginManager/plugin/%s/doUninstall", rootURL, pluginName), nil) request.Header.Add("CrumbRequestField", "Crumb") response = &http.Response{ StatusCode: 200, Proto: "HTTP/1.1", Request: request, Body: ioutil.NopCloser(bytes.NewBufferString("")), } roundTripper.EXPECT(). RoundTrip(request).Return(response, nil) // common crumb request requestCrumb, responseCrumb = RequestCrumb(roundTripper, rootURL) return } // PrepareForUninstallPluginWith500 only for test func PrepareForUninstallPluginWith500(roundTripper *mhttp.MockRoundTripper, rootURL, pluginName string) ( request *http.Request, response *http.Response, requestCrumb *http.Request, responseCrumb *http.Response) { request, response, requestCrumb, responseCrumb = PrepareForUninstallPlugin(roundTripper, rootURL, pluginName) response.StatusCode = 500 return } // RequestCrumb only for the test case func RequestCrumb(roundTripper *mhttp.MockRoundTripper, rootURL string) ( requestCrumb *http.Request, responseCrumb *http.Response) { requestCrumb, _ = http.NewRequest("GET", fmt.Sprintf("%s%s", rootURL, "/crumbIssuer/api/json"), nil) responseCrumb = &http.Response{ StatusCode: 200, Proto: "HTTP/1.1", Request: requestCrumb, Body: ioutil.NopCloser(bytes.NewBufferString(` {"crumbRequestField":"CrumbRequestField","crumb":"Crumb"} `)), } roundTripper.EXPECT(). RoundTrip(requestCrumb).Return(responseCrumb, nil) return }