Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / v8 / src / libplatform / default-platform-unittest.cc
1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "src/libplatform/default-platform.h"
6 #include "testing/gmock/include/gmock/gmock.h"
7
8 using testing::InSequence;
9 using testing::StrictMock;
10
11 namespace v8 {
12 namespace platform {
13
14 namespace {
15
16 struct MockTask : public Task {
17   virtual ~MockTask() { Die(); }
18   MOCK_METHOD0(Run, void());
19   MOCK_METHOD0(Die, void());
20 };
21
22 }  // namespace
23
24
25 TEST(DefaultPlatformTest, PumpMessageLoop) {
26   InSequence s;
27
28   int dummy;
29   Isolate* isolate = reinterpret_cast<Isolate*>(&dummy);
30
31   DefaultPlatform platform;
32   EXPECT_FALSE(platform.PumpMessageLoop(isolate));
33
34   StrictMock<MockTask>* task = new StrictMock<MockTask>;
35   platform.CallOnForegroundThread(isolate, task);
36   EXPECT_CALL(*task, Run());
37   EXPECT_CALL(*task, Die());
38   EXPECT_TRUE(platform.PumpMessageLoop(isolate));
39   EXPECT_FALSE(platform.PumpMessageLoop(isolate));
40 }
41
42 }  // namespace platform
43 }  // namespace v8