172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// found in the LICENSE file.
472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/sync/js_test_util.h"
672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "base/basictypes.h"
872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "chrome/browser/sync/js_arg_list.h"
972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace browser_sync {
1172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenvoid PrintTo(const JsArgList& args, ::std::ostream* os) {
1372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  *os << args.ToString();
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsennamespace {
1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
1872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen// Matcher implementation for HasArgs().
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsenclass HasArgsMatcher
2072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    : public ::testing::MatcherInterface<const JsArgList&> {
2172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen public:
2272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  explicit HasArgsMatcher(const JsArgList& expected_args)
2372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      : expected_args_(expected_args) {}
2472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual ~HasArgsMatcher() {}
2672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
2772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual bool MatchAndExplain(
2872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      const JsArgList& args,
2972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen      ::testing::MatchResultListener* listener) const {
3072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    // No need to annotate listener since we already define PrintTo().
3172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    return args.Get().Equals(&expected_args_.Get());
3272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
3372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual void DescribeTo(::std::ostream* os) const {
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    *os << "has args " << expected_args_.ToString();
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
3872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual void DescribeNegationTo(::std::ostream* os) const {
3972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    *os << "doesn't have args " << expected_args_.ToString();
4072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  }
4172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen private:
4372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  const JsArgList expected_args_;
4472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  DISALLOW_COPY_AND_ASSIGN(HasArgsMatcher);
4672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen};
4772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
4872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace
4972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen::testing::Matcher<const JsArgList&> HasArgs(const JsArgList& expected_args) {
5172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return ::testing::MakeMatcher(new HasArgsMatcher(expected_args));
5272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
5372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen::testing::Matcher<const JsArgList&> HasArgsAsList(
5572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen    const ListValue& expected_args) {
5672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  return HasArgs(JsArgList(expected_args));
5772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}
5872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
5972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsBackend::MockJsBackend() {}
6072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
6172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsBackend::~MockJsBackend() {}
6272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
6372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsFrontend::MockJsFrontend() {}
6472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
6572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsFrontend::~MockJsFrontend() {}
6672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
6772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsEventHandler::MockJsEventHandler() {}
6872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
6972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsEventHandler::~MockJsEventHandler() {}
7072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
7172a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsEventRouter::MockJsEventRouter() {}
7272a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
7372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian MonsenMockJsEventRouter::~MockJsEventRouter() {}
7472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
7572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen}  // namespace browser_sync
7672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
77