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.
5 #include "src/libplatform/default-platform.h"
6 #include "testing/gmock/include/gmock/gmock.h"
8 using testing::InSequence;
9 using testing::StrictMock;
16 struct MockTask : public Task {
17 virtual ~MockTask() { Die(); }
18 MOCK_METHOD0(Run, void());
19 MOCK_METHOD0(Die, void());
25 TEST(DefaultPlatformTest, PumpMessageLoop) {
29 Isolate* isolate = reinterpret_cast<Isolate*>(&dummy);
31 DefaultPlatform platform;
32 EXPECT_FALSE(platform.PumpMessageLoop(isolate));
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));
42 } // namespace platform