|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "sync/js/js_event_details.h" | 
|  |  | 
|  | #include "base/memory/scoped_ptr.h" | 
|  | #include "testing/gtest/include/gtest/gtest.h" | 
|  |  | 
|  | namespace syncer { | 
|  | namespace { | 
|  |  | 
|  | class JsEventDetailsTest : public testing::Test {}; | 
|  |  | 
|  | TEST_F(JsEventDetailsTest, EmptyList) { | 
|  | JsEventDetails details; | 
|  | EXPECT_TRUE(details.Get().empty()); | 
|  | EXPECT_EQ("{}", details.ToString()); | 
|  | } | 
|  |  | 
|  | TEST_F(JsEventDetailsTest, FromDictionary) { | 
|  | base::DictionaryValue dict; | 
|  | dict.SetString("foo", "bar"); | 
|  | dict.Set("baz", new base::ListValue()); | 
|  |  | 
|  | scoped_ptr<base::DictionaryValue> dict_copy(dict.DeepCopy()); | 
|  |  | 
|  | JsEventDetails details(&dict); | 
|  |  | 
|  | // |details| should take over |dict|'s data. | 
|  | EXPECT_TRUE(dict.empty()); | 
|  | EXPECT_TRUE(details.Get().Equals(dict_copy.get())); | 
|  | } | 
|  |  | 
|  | }  // namespace | 
|  | }  // namespace syncer |