1// Copyright 2014 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#ifndef CC_TEST_BEGIN_FRAME_ARGS_TEST_H_
6#define CC_TEST_BEGIN_FRAME_ARGS_TEST_H_
7
8#include <iosfwd>
9
10#include "base/time/time.h"
11#include "cc/output/begin_frame_args.h"
12#include "cc/test/test_now_source.h"
13#include "testing/gtest/include/gtest/gtest.h"
14
15namespace cc {
16
17// Functions for quickly creating BeginFrameArgs
18BeginFrameArgs CreateBeginFrameArgsForTesting();
19BeginFrameArgs CreateBeginFrameArgsForTesting(base::TimeTicks frame_time);
20BeginFrameArgs CreateBeginFrameArgsForTesting(int64 frame_time,
21                                              int64 deadline,
22                                              int64 interval);
23BeginFrameArgs CreateExpiredBeginFrameArgsForTesting();
24
25// Creates a BeginFrameArgs using the fake Now value stored on the
26// OrderSimpleTaskRunner.
27BeginFrameArgs CreateBeginFrameArgsForTesting(
28    scoped_refptr<TestNowSource> now_src);
29BeginFrameArgs CreateExpiredBeginFrameArgsForTesting(
30    scoped_refptr<TestNowSource> now_src);
31
32// gtest helpers -- these *must* be in the same namespace as the types they
33// operate on.
34
35// Allow "EXPECT_EQ(args1, args2);"
36// We don't define operator!= because EXPECT_NE(args1, args2) isn't all that
37// sensible.
38bool operator==(const BeginFrameArgs& lhs, const BeginFrameArgs& rhs);
39
40// Allow gtest to pretty print begin frame args.
41::std::ostream& operator<<(::std::ostream& os, const BeginFrameArgs& args);
42void PrintTo(const BeginFrameArgs& args, ::std::ostream* os);
43
44}  // namespace cc
45
46#endif  // CC_TEST_BEGIN_FRAME_ARGS_TEST_H_
47