00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00020
00021 #ifndef NET_INSTAWEB_HTTP_PUBLIC_MOCK_CALLBACK_H_
00022 #define NET_INSTAWEB_HTTP_PUBLIC_MOCK_CALLBACK_H_
00023
00024 #include "net/instaweb/http/public/async_fetch.h"
00025 #include "net/instaweb/http/public/url_async_fetcher.h"
00026 #include "net/instaweb/util/public/basictypes.h"
00027 #include "net/instaweb/util/public/gtest.h"
00028
00029 namespace net_instaweb {
00030
00038 class MockCallback : public UrlAsyncFetcher::Callback {
00039 public:
00040 MockCallback() : success_(false), done_(false) {}
00041
00042 virtual void Done(bool success) {
00043 success_ = success;
00044 done_ = true;
00045 }
00046
00047 bool success() const { return success_; }
00048 bool done() const { return done_; }
00049
00050 private:
00051 bool success_;
00052 bool done_;
00053
00054 DISALLOW_COPY_AND_ASSIGN(MockCallback);
00055 };
00056
00060 class ExpectStringAsyncFetch : public StringAsyncFetch {
00061 public:
00062 explicit ExpectStringAsyncFetch(bool expect_success)
00063 : expect_success_(expect_success) {}
00064 virtual ~ExpectStringAsyncFetch() {
00065 EXPECT_TRUE(done());
00066 }
00067
00068 virtual void HandleDone(bool success) {
00069 EXPECT_FALSE(done()) << "Already Done; perhaps you reused without Reset()";
00070 StringAsyncFetch::HandleDone(success);
00071 EXPECT_EQ(expect_success_, success);
00072 }
00073
00074 void set_expect_success(bool x) { expect_success_ = x; }
00075
00076 private:
00077 bool expect_success_;
00078
00079 DISALLOW_COPY_AND_ASSIGN(ExpectStringAsyncFetch);
00080 };
00081
00082 }
00083
00084 #endif ///< NET_INSTAWEB_HTTP_PUBLIC_MOCK_CALLBACK_H_