| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ | 5 #ifndef CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ |
| 6 #define CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ | 6 #define CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ |
| 7 | 7 |
| 8 #include <atlbase.h> | 8 #include <atlbase.h> |
| 9 #include <atlcom.h> | 9 #include <atlcom.h> |
| 10 | 10 |
| 11 #include "chrome_frame/bho.h" | |
| 12 #include "gmock/gmock.h" | 11 #include "gmock/gmock.h" |
| 13 #include "gtest/gtest.h" | 12 #include "gtest/gtest.h" |
| 14 | 13 |
| 15 class MockBindingImpl | |
| 16 : public SimpleBindingImpl, | |
| 17 public IServiceProvider { | |
| 18 public: | |
| 19 BEGIN_COM_MAP(MockBindingImpl) | |
| 20 COM_INTERFACE_ENTRY(IBinding) | |
| 21 COM_INTERFACE_ENTRY(IServiceProvider) | |
| 22 END_COM_MAP() | |
| 23 | |
| 24 MOCK_METHOD0_WITH_CALLTYPE(__stdcall, Abort, | |
| 25 HRESULT ()); // NOLINT | |
| 26 MOCK_METHOD3_WITH_CALLTYPE(__stdcall, QueryService, | |
| 27 HRESULT (REFGUID svc, // NOLINT | |
| 28 REFIID riid, | |
| 29 void** obj)); | |
| 30 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, GetBindResult, | |
| 31 HRESULT (CLSID* protocol, // NOLINT | |
| 32 DWORD* result_code, | |
| 33 LPOLESTR* result, | |
| 34 DWORD* reserved)); | |
| 35 }; | |
| 36 | |
| 37 class MockHttpNegotiateImpl | |
| 38 : public CComObjectRootEx<CComSingleThreadModel>, | |
| 39 public IHttpNegotiate { | |
| 40 public: | |
| 41 BEGIN_COM_MAP(MockHttpNegotiateImpl) | |
| 42 COM_INTERFACE_ENTRY(IHttpNegotiate) | |
| 43 END_COM_MAP() | |
| 44 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, BeginningTransaction, | |
| 45 HRESULT (LPCWSTR url, // NOLINT | |
| 46 LPCWSTR headers, | |
| 47 DWORD reserved, | |
| 48 LPWSTR* additional)); | |
| 49 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, OnResponse, | |
| 50 HRESULT (DWORD code, // NOLINT | |
| 51 LPCWSTR response_headers, | |
| 52 LPCWSTR request_headers, | |
| 53 LPWSTR* additional)); | |
| 54 }; | |
| 55 | |
| 56 class MockBindStatusCallbackImpl | 14 class MockBindStatusCallbackImpl |
| 57 : public CComObjectRootEx<CComSingleThreadModel>, | 15 : public CComObjectRootEx<CComSingleThreadModel>, |
| 58 public IBindStatusCallback { | 16 public IBindStatusCallback { |
| 59 public: | 17 public: |
| 60 BEGIN_COM_MAP(MockBindStatusCallbackImpl) | 18 BEGIN_COM_MAP(MockBindStatusCallbackImpl) |
| 61 COM_INTERFACE_ENTRY(IBindStatusCallback) | 19 COM_INTERFACE_ENTRY(IBindStatusCallback) |
| 62 END_COM_MAP() | 20 END_COM_MAP() |
| 21 |
| 63 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, OnStartBinding, | 22 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, OnStartBinding, |
| 64 HRESULT (DWORD reserved, IBinding* binding)); // NOLINT | 23 HRESULT (DWORD reserved, IBinding* binding)); // NOLINT |
| 65 | 24 |
| 66 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, GetPriority, | 25 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, GetPriority, |
| 67 HRESULT (LONG* priority)); // NOLINT | 26 HRESULT (LONG* priority)); // NOLINT |
| 68 | 27 |
| 69 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, OnLowResource, | 28 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, OnLowResource, |
| 70 HRESULT (DWORD reserved)); // NOLINT | 29 HRESULT (DWORD reserved)); // NOLINT |
| 71 | 30 |
| 72 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, OnProgress, | 31 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, OnProgress, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 85 | 44 |
| 86 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, OnDataAvailable, | 45 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, OnDataAvailable, |
| 87 HRESULT (DWORD flags, // NOLINT | 46 HRESULT (DWORD flags, // NOLINT |
| 88 DWORD size, | 47 DWORD size, |
| 89 FORMATETC* format, | 48 FORMATETC* format, |
| 90 STGMEDIUM* storage)); | 49 STGMEDIUM* storage)); |
| 91 | 50 |
| 92 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, OnObjectAvailable, | 51 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, OnObjectAvailable, |
| 93 HRESULT (REFIID riid, // NOLINT | 52 HRESULT (REFIID riid, // NOLINT |
| 94 IUnknown* unk)); | 53 IUnknown* unk)); |
| 95 | |
| 96 static void ReadAllData(STGMEDIUM* storage) { | |
| 97 DCHECK(storage); | |
| 98 DCHECK(storage->tymed == TYMED_ISTREAM); | |
| 99 char buffer[0xff]; | |
| 100 HRESULT hr; | |
| 101 DWORD read = 0; | |
| 102 do { | |
| 103 hr = storage->pstm->Read(buffer, sizeof(buffer), &read); | |
| 104 } while (hr == S_OK && read); | |
| 105 } | |
| 106 | |
| 107 static void SetSyncBindInfo(DWORD* flags, BINDINFO* bind_info) { | |
| 108 DCHECK(flags); | |
| 109 DCHECK(bind_info); | |
| 110 *flags = BINDF_PULLDATA | BINDF_NOWRITECACHE; | |
| 111 DCHECK(bind_info->cbSize >= sizeof(BINDINFO)); | |
| 112 bind_info->dwBindVerb = BINDVERB_GET; | |
| 113 memset(&bind_info->stgmedData, 0, sizeof(STGMEDIUM)); | |
| 114 bind_info->grfBindInfoF = 0; | |
| 115 bind_info->szCustomVerb = NULL; | |
| 116 } | |
| 117 | |
| 118 static void SetAsyncBindInfo(DWORD* flags, BINDINFO* bind_info) { | |
| 119 DCHECK(flags); | |
| 120 DCHECK(bind_info); | |
| 121 *flags = BINDF_ASYNCHRONOUS | BINDF_ASYNCSTORAGE | BINDF_PULLDATA | | |
| 122 BINDF_NOWRITECACHE; | |
| 123 DCHECK(bind_info->cbSize >= sizeof(BINDINFO)); | |
| 124 bind_info->dwBindVerb = BINDVERB_GET; | |
| 125 memset(&bind_info->stgmedData, 0, sizeof(STGMEDIUM)); | |
| 126 bind_info->grfBindInfoF = 0; | |
| 127 bind_info->szCustomVerb = NULL; | |
| 128 } | |
| 129 }; | 54 }; |
| 130 | 55 |
| 131 class TestNavigationManager : public NavigationManager { | 56 class MockBindCtxImpl |
| 57 : public CComObjectRootEx<CComSingleThreadModel>, |
| 58 public IBindCtx { |
| 132 public: | 59 public: |
| 133 TestNavigationManager() { | 60 BEGIN_COM_MAP(MockBindCtxImpl) |
| 134 } | 61 COM_INTERFACE_ENTRY(IBindCtx) |
| 62 END_COM_MAP() |
| 135 | 63 |
| 136 bool HasRequestData() const { | 64 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, RegisterObjectBound, |
| 137 return request_data_.get() != NULL; | 65 HRESULT (IUnknown* object)); // NOLINT |
| 138 } | 66 |
| 67 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, RevokeObjectBound, |
| 68 HRESULT (IUnknown* object)); // NOLINT |
| 69 |
| 70 MOCK_METHOD0_WITH_CALLTYPE(__stdcall, ReleaseBoundObjects, |
| 71 HRESULT ()); // NOLINT |
| 72 |
| 73 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, SetBindOptions, |
| 74 HRESULT (BIND_OPTS* options)); // NOLINT |
| 75 |
| 76 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, GetBindOptions, |
| 77 HRESULT (BIND_OPTS* options)); // NOLINT |
| 78 |
| 79 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, GetRunningObjectTable, |
| 80 HRESULT (IRunningObjectTable** rot)); // NOLINT |
| 81 |
| 82 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, RegisterObjectParam, |
| 83 HRESULT (LPOLESTR key, // NOLINT |
| 84 IUnknown* param)); |
| 85 |
| 86 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, GetObjectParam, |
| 87 HRESULT (LPOLESTR key, // NOLINT |
| 88 IUnknown** param)); |
| 89 |
| 90 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, EnumObjectParam, |
| 91 HRESULT (IEnumString** enum_params)); // NOLINT |
| 92 |
| 93 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, RevokeObjectParam, |
| 94 HRESULT (LPOLESTR key)); // NOLINT |
| 95 }; |
| 96 |
| 97 class MockMonikerImpl |
| 98 : public CComObjectRootEx<CComSingleThreadModel>, |
| 99 public IMoniker { |
| 100 public: |
| 101 BEGIN_COM_MAP(MockMonikerImpl) |
| 102 COM_INTERFACE_ENTRY(IMoniker) |
| 103 END_COM_MAP() |
| 104 |
| 105 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, BindToObject, |
| 106 HRESULT (IBindCtx* bind_context, // NOLINT |
| 107 IMoniker* left, |
| 108 REFIID result_iid, |
| 109 void** object)); |
| 110 |
| 111 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, BindToStorage, |
| 112 HRESULT (IBindCtx* bind_context, // NOLINT |
| 113 IMoniker* left, |
| 114 REFIID result_iid, |
| 115 void** storage)); |
| 116 |
| 117 MOCK_METHOD4_WITH_CALLTYPE(__stdcall, Reduce, |
| 118 HRESULT (IBindCtx* bind_context, // NOLINT |
| 119 DWORD reduce_depth, |
| 120 IMoniker* left, |
| 121 IMoniker** reduced)); |
| 122 |
| 123 MOCK_METHOD3_WITH_CALLTYPE(__stdcall, ComposeWith, |
| 124 HRESULT (IBindCtx* right, // NOLINT |
| 125 BOOL is_not_generic, |
| 126 IMoniker** composite)); |
| 127 |
| 128 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, Enum, |
| 129 HRESULT (BOOL is_forward, // NOLINT |
| 130 IEnumMoniker** moniker_enum)); |
| 131 |
| 132 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, IsEqual, |
| 133 HRESULT (IMoniker* other)); // NOLINT |
| 134 |
| 135 MOCK_METHOD3_WITH_CALLTYPE(__stdcall, IsRunning, |
| 136 HRESULT (IBindCtx* bind_context, // NOLINT |
| 137 IMoniker* left, |
| 138 IMoniker** newly_running)); |
| 139 |
| 140 MOCK_METHOD3_WITH_CALLTYPE(__stdcall, GetTimeOfLastChange, |
| 141 HRESULT (IBindCtx* bind_context, // NOLINT |
| 142 IMoniker* left, |
| 143 FILETIME *pFileTime)); |
| 144 |
| 145 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, Inverse, |
| 146 HRESULT (IMoniker** inversed)); // NOLINT |
| 147 |
| 148 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, CommonPrefixWith, |
| 149 HRESULT (IMoniker* other, // NOLINT |
| 150 IMoniker** prefix)); |
| 151 |
| 152 MOCK_METHOD2_WITH_CALLTYPE(__stdcall, RelativePathTo, |
| 153 HRESULT (IMoniker* other, // NOLINT |
| 154 IMoniker** relative)); |
| 155 |
| 156 MOCK_METHOD3_WITH_CALLTYPE(__stdcall, GetDisplayName, |
| 157 HRESULT (IBindCtx* bind_context, // NOLINT |
| 158 IMoniker* left, |
| 159 LPOLESTR* display_name)); |
| 160 |
| 161 MOCK_METHOD5_WITH_CALLTYPE(__stdcall, ParseDisplayName, |
| 162 HRESULT (IBindCtx* bind_context, // NOLINT |
| 163 IMoniker* left, |
| 164 LPOLESTR display_name, |
| 165 ULONG *pchEaten, |
| 166 IMoniker** ret)); |
| 167 |
| 168 MOCK_METHOD1_WITH_CALLTYPE(__stdcall, IsSystemMoniker, |
| 169 HRESULT (DWORD* is_system)); // NOLINT |
| 139 }; | 170 }; |
| 140 | 171 |
| 141 #endif // CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ | 172 #endif // CHROME_FRAME_TEST_URLMON_MONIKER_TESTS_H_ |
| 142 | |
| OLD | NEW |