Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: chrome_frame/test/chrome_frame_unittests.h

Issue 465074: Added support for running reliability tests for ChromeFrame on similar lines ... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_ 4 #ifndef CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_
5 #define CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_ 5 #define CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_
6 6
7 #include <atlbase.h> 7 #include <atlbase.h>
8 #include <atlcom.h> 8 #include <atlcom.h>
9 #include <string> 9 #include <string>
10 #include <exdisp.h> 10 #include <exdisp.h>
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 } 97 }
98 return ""; 98 return "";
99 } 99 }
100 100
101 BrowserKind browser_; 101 BrowserKind browser_;
102 std::wstring results_dir_; 102 std::wstring results_dir_;
103 ScopedHandle browser_handle_; 103 ScopedHandle browser_handle_;
104 ChromeFrameHTTPServer server_; 104 ChromeFrameHTTPServer server_;
105 }; 105 };
106 106
107 // This class sets up event sinks to the IWebBrowser interface. Currently it
108 // subscribes to the following events:-
109 // 1. DISPID_BEFORENAVIGATE2
110 // 2. DISPID_NAVIGATEERROR
111 // 3. DISPID_NAVIGATECOMPLETE2
112 // 4. DISPID_NEWWINDOW3
113 // Other events can be subscribed to on an if needed basis.
114 class WebBrowserEventSink
115 : public CComObjectRootEx<CComSingleThreadModel>,
116 public IDispEventSimpleImpl<0, WebBrowserEventSink,
117 &DIID_DWebBrowserEvents2> {
118 public:
119 typedef IDispEventSimpleImpl<0, WebBrowserEventSink,
120 &DIID_DWebBrowserEvents2> DispEventsImpl;
121 WebBrowserEventSink()
122 : ALLOW_THIS_IN_INITIALIZER_LIST(
123 onmessage_(this, &WebBrowserEventSink::OnMessageInternal)),
124 ALLOW_THIS_IN_INITIALIZER_LIST(
125 onloaderror_(this, &WebBrowserEventSink::OnLoadErrorInternal)),
126 ALLOW_THIS_IN_INITIALIZER_LIST(
127 onload_(this, &WebBrowserEventSink::OnLoadInternal)) {
128 }
129
130 ~WebBrowserEventSink() {
131 Uninitialize();
132 }
133
134 void Uninitialize();
135
136 // Helper function to launch IE and navigate to a URL.
137 // Returns S_OK on success, S_FALSE if the test was not run, other
138 // errors on failure.
139 HRESULT LaunchIEAndNavigate(const std::wstring& navigate_url);
140
141 HRESULT Navigate(const std::wstring& navigate_url);
142
143 // Set input focus to chrome frame window.
144 void SetFocusToChrome();
145
146 // Send keyboard input to the renderer window hosted in chrome using
147 // SendInput API
148 void SendInputToChrome(const std::string& input_string);
149
150 BEGIN_COM_MAP(WebBrowserEventSink)
151 END_COM_MAP()
152
153 BEGIN_SINK_MAP(WebBrowserEventSink)
154 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_BEFORENAVIGATE2,
155 OnBeforeNavigate2Internal, &kBeforeNavigate2Info)
156 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_DOWNLOADBEGIN,
157 OnDownloadBegin, &kVoidMethodInfo)
158 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATECOMPLETE2,
159 OnNavigateComplete2Internal, &kNavigateComplete2Info)
160 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NAVIGATEERROR,
161 OnNavigateError, &kNavigateErrorInfo)
162 SINK_ENTRY_INFO(0, DIID_DWebBrowserEvents2, DISPID_NEWWINDOW3,
163 OnNewWindow3, &kNewWindow3Info)
164 END_SINK_MAP()
165
166 STDMETHOD_(void, OnNavigateError)(IDispatch* dispatch, VARIANT* url,
167 VARIANT* frame_name, VARIANT* status_code,
168 VARIANT* cancel) {
169 DLOG(INFO) << __FUNCTION__;
170 }
171
172 STDMETHOD(OnBeforeNavigate2)(IDispatch* dispatch, VARIANT* url, VARIANT*
173 flags, VARIANT* target_frame_name,
174 VARIANT* post_data, VARIANT* headers,
175 VARIANT_BOOL* cancel) {
176 return S_OK;
177 }
178
179 STDMETHOD(OnBeforeNavigate2Internal)(IDispatch* dispatch, VARIANT* url,
180 VARIANT* flags,
181 VARIANT* target_frame_name,
182 VARIANT* post_data, VARIANT* headers,
183 VARIANT_BOOL* cancel);
184 STDMETHOD_(void, OnDownloadBegin)() {}
185 STDMETHOD_(void, OnNavigateComplete2Internal)(IDispatch* dispatch,
186 VARIANT* url);
187 STDMETHOD_(void, OnNavigateComplete2)(IDispatch* dispatch, VARIANT* url) {}
188 STDMETHOD_(void, OnNewWindow3)(IDispatch** dispatch, VARIANT_BOOL* Cancel,
189 DWORD flags, BSTR url_context, BSTR url) {}
190
191 #ifdef _DEBUG
192 STDMETHOD(Invoke)(DISPID dispid, REFIID riid,
193 LCID lcid, WORD flags, DISPPARAMS* params, VARIANT* result,
194 EXCEPINFO* except_info, UINT* arg_error) {
195 DLOG(INFO) << __FUNCTION__ << L" disp id :" << dispid;
196 return DispEventsImpl::Invoke(dispid, riid, lcid, flags, params, result,
197 except_info, arg_error);
198 }
199 #endif // _DEBUG
200
201 // Chrome frame callbacks
202 virtual void OnLoad(const wchar_t* url) {}
203 virtual void OnLoadError(const wchar_t* url) {}
204 virtual void OnMessage(const wchar_t* message) {}
205
206 IWebBrowser2* web_browser2() {
207 return web_browser2_.get();
208 }
209
210 protected:
211 // IChromeFrame callbacks
212 HRESULT OnLoadInternal(const VARIANT* param);
213 HRESULT OnLoadErrorInternal(const VARIANT* param);
214 HRESULT OnMessageInternal(const VARIANT* param);
215
216 void ConnectToChromeFrame();
217 HWND GetChromeRendererWindow();
218
219 public:
220 ScopedComPtr<IWebBrowser2> web_browser2_;
221 ScopedComPtr<IChromeFrame> chrome_frame_;
222 DispCallback<WebBrowserEventSink> onmessage_;
223 DispCallback<WebBrowserEventSink> onloaderror_;
224 DispCallback<WebBrowserEventSink> onload_;
225
226 protected:
227 static _ATL_FUNC_INFO kBeforeNavigate2Info;
228 static _ATL_FUNC_INFO kNavigateComplete2Info;
229 static _ATL_FUNC_INFO kNavigateErrorInfo;
230 static _ATL_FUNC_INFO kNewWindow3Info;
231 static _ATL_FUNC_INFO kVoidMethodInfo;
232 };
233
234 #endif // CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_ 107 #endif // CHROME_FRAME_TEST_CHROME_FRAME_UNITTESTS_H_
235 108
OLDNEW
« no previous file with comments | « chrome_frame/test/chrome_frame_test_utils.cc ('k') | chrome_frame/test/chrome_frame_unittests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698