Home | History | Annotate | Download | only in test
      1 // Copyright (c) 2012 The Chromium 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 "base/test/test_pending_task.h"
      6 
      7 #include "base/bind.h"
      8 #include "base/debug/trace_event.h"
      9 #include "testing/gmock/include/gmock/gmock.h"
     10 #include "testing/gtest/include/gtest/gtest-spi.h"
     11 #include "testing/gtest/include/gtest/gtest.h"
     12 
     13 namespace {
     14 
     15 TEST(TestPendingTaskTest, TraceSupport) {
     16   base::TestPendingTask task;
     17 
     18   // Check that TestPendingTask can be sent to the trace subsystem.
     19   TRACE_EVENT1("test", "TestPendingTask::TraceSupport", "task", task.AsValue());
     20 
     21   // Just a basic check that the trace output has *something* in it.
     22   EXPECT_THAT(task.AsValue()->ToString(), ::testing::HasSubstr("post_time"));
     23 }
     24 
     25 TEST(TestPendingTaskTest, ToString) {
     26   base::TestPendingTask task;
     27 
     28   // Just a basic check that ToString has *something* in it.
     29   EXPECT_THAT(task.ToString(), ::testing::StartsWith("TestPendingTask("));
     30 }
     31 
     32 TEST(TestPendingTaskTest, GTestPrettyPrint) {
     33   base::TestPendingTask task;
     34 
     35   // Check that gtest is calling the TestPendingTask's PrintTo method.
     36   EXPECT_THAT(::testing::PrintToString(task),
     37               ::testing::StartsWith("TestPendingTask("));
     38 
     39   // Check that pretty printing works with the gtest iostreams operator.
     40   EXPECT_NONFATAL_FAILURE(EXPECT_TRUE(false) << task, "TestPendingTask(");
     41 }
     42 
     43 TEST(TestPendingTaskTest, ShouldRunBefore) {
     44   base::TestPendingTask task_first;
     45   task_first.delay = base::TimeDelta::FromMilliseconds(1);
     46   base::TestPendingTask task_after;
     47   task_after.delay = base::TimeDelta::FromMilliseconds(2);
     48 
     49   EXPECT_FALSE(task_after.ShouldRunBefore(task_first))
     50       << task_after << ".ShouldRunBefore(" << task_first << ")\n";
     51   EXPECT_TRUE(task_first.ShouldRunBefore(task_after))
     52       << task_first << ".ShouldRunBefore(" << task_after << ")\n";
     53 }
     54 
     55 }  // namespace
     56