1 // Copyright 2015 The Android Open Source Project 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 #ifndef WEBSERVER_LIBWEBSERV_MOCK_RESPONSE_H_ 16 #define WEBSERVER_LIBWEBSERV_MOCK_RESPONSE_H_ 17 18 #include <base/macros.h> 19 #include <gmock/gmock.h> 20 21 #include <libwebserv/response.h> 22 23 namespace libwebserv { 24 25 // Mock Response implementation for testing. 26 class MockResponse : public Response { 27 public: 28 MockResponse() = default; 29 30 MOCK_METHOD2(AddHeader, void(const std::string&, const std::string&)); 31 MOCK_METHOD1(AddHeaders, 32 void(const std::vector<std::pair<std::string, std::string>>&)); 33 34 // Workaround for mocking with move-only StreamPtr. 35 MOCK_METHOD3(MockReply, void(int, brillo::Stream*, const std::string&)); 36 37 MOCK_METHOD3(ReplyWithText, 38 void(int, const std::string&, const std::string&)); 39 MOCK_METHOD2(ReplyWithJson, void(int, const base::Value*)); 40 MOCK_METHOD2(ReplyWithJson, 41 void(int, const std::map<std::string, std::string>&)); 42 MOCK_METHOD2(Redirect, void(int, const std::string&)); 43 MOCK_METHOD2(ReplyWithError, void(int, const std::string&)); 44 MOCK_METHOD0(ReplyWithErrorNotFound, void()); 45 46 private: Reply(int status_code,brillo::StreamPtr data_stream,const std::string & mime_type)47 void Reply(int status_code, 48 brillo::StreamPtr data_stream, 49 const std::string &mime_type) override { 50 return MockReply(status_code, data_stream.get(), mime_type); 51 } 52 53 DISALLOW_COPY_AND_ASSIGN(MockResponse); 54 }; 55 56 } // namespace libwebserv 57 58 #endif // WEBSERVER_LIBWEBSERV_MOCK_RESPONSE_H_ 59