• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "sync/js/js_event_details.h"
6 
7 #include "base/memory/scoped_ptr.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 
10 namespace syncer {
11 namespace {
12 
13 class JsEventDetailsTest : public testing::Test {};
14 
TEST_F(JsEventDetailsTest,EmptyList)15 TEST_F(JsEventDetailsTest, EmptyList) {
16   JsEventDetails details;
17   EXPECT_TRUE(details.Get().empty());
18   EXPECT_EQ("{}", details.ToString());
19 }
20 
TEST_F(JsEventDetailsTest,FromDictionary)21 TEST_F(JsEventDetailsTest, FromDictionary) {
22   base::DictionaryValue dict;
23   dict.SetString("foo", "bar");
24   dict.Set("baz", new base::ListValue());
25 
26   scoped_ptr<base::DictionaryValue> dict_copy(dict.DeepCopy());
27 
28   JsEventDetails details(&dict);
29 
30   // |details| should take over |dict|'s data.
31   EXPECT_TRUE(dict.empty());
32   EXPECT_TRUE(details.Get().Equals(dict_copy.get()));
33 }
34 
35 }  // namespace
36 }  // namespace syncer
37