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

Unified Diff: webkit/glue/resource_fetcher_unittest.cc

Issue 9701: Port a resource fetcher test shell test to linux. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | webkit/tools/test_shell/SConscript » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/glue/resource_fetcher_unittest.cc
===================================================================
--- webkit/glue/resource_fetcher_unittest.cc (revision 5006)
+++ webkit/glue/resource_fetcher_unittest.cc (working copy)
@@ -11,6 +11,10 @@
MSVC_POP_WARNING();
#undef LOG
+#if defined(OS_LINUX)
+#include <gtk/gtk.h>
+#endif
+
#include "webkit/glue/unittest_test_server.h"
#include "webkit/glue/webview.h"
#include "webkit/glue/webframe_impl.h"
@@ -22,7 +26,6 @@
namespace {
-
class ResourceFetcherTests : public TestShellTest {
public:
void SetUp() {
@@ -43,16 +46,15 @@
// Start a repeating timer waiting for the download to complete. The
// callback has to be a static function, so we hold on to our instance.
FetcherDelegate::instance_ = this;
- timer_id_ = SetTimer(NULL, NULL, kWaitIntervalMs,
- &FetcherDelegate::TimerCallback);
+ CreateTimer(kWaitIntervalMs);
}
-
+
virtual void OnURLFetchComplete(const ResourceResponse& response,
const std::string& data) {
response_ = response;
data_ = data;
completed_ = true;
- KillTimer(NULL, timer_id_);
+ DestroyTimer();
MessageLoop::current()->Quit();
}
@@ -71,18 +73,41 @@
MessageLoop::current()->Run();
}
+ void CreateTimer(int interval) {
+#if defined(OS_WIN)
+ timer_id_ = ::SetTimer(NULL, NULL, interval,
+ &FetcherDelegate::TimerCallback);
+#elif defined(OS_LINUX)
+ timer_id_ = g_timeout_add(interval, &FetcherDelegate::TimerCallback, NULL);
+#endif
+ }
+
+ void DestroyTimer() {
+#if defined(OS_WIN)
+ ::KillTimer(NULL, timer_id_);
+#elif defined(OS_LINUX)
+ g_source_remove(timer_id_);
+#endif
+ }
+
+#if defined(OS_WIN)
// Static timer callback, just passes through to instance version.
static VOID CALLBACK TimerCallback(HWND hwnd, UINT msg, UINT_PTR timer_id,
DWORD ms) {
- instance_->TimerFired(hwnd, timer_id);
+ instance_->TimerFired();
}
-
- void TimerFired(HWND hwnd, UINT_PTR timer_id) {
+#elif defined(OS_LINUX)
+ static gboolean TimerCallback(gpointer data) {
+ instance_->TimerFired();
+ return true;
+ }
+#endif
+
+ void TimerFired() {
ASSERT_FALSE(completed_);
if (timed_out()) {
- printf("timer fired\n");
- KillTimer(hwnd, timer_id);
+ DestroyTimer();
MessageLoop::current()->Quit();
FAIL() << "fetch timed out";
return;
@@ -94,7 +119,11 @@
static FetcherDelegate* instance_;
private:
+#if defined(OS_WIN)
UINT_PTR timer_id_;
+#elif defined(OS_LINUX)
+ guint timer_id_;
+#endif
bool completed_;
int time_elapsed_ms_;
ResourceResponse response_;
« no previous file with comments | « no previous file | webkit/tools/test_shell/SConscript » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698