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.
5 #include "sync/js/js_arg_list.h"
7 #include "base/memory/scoped_ptr.h"
8 #include "testing/gtest/include/gtest/gtest.h"
13 class JsArgListTest
: public testing::Test
{};
15 TEST_F(JsArgListTest
, EmptyList
) {
17 EXPECT_TRUE(arg_list
.Get().empty());
18 EXPECT_EQ("[]", arg_list
.ToString());
21 TEST_F(JsArgListTest
, FromList
) {
22 scoped_ptr
<base::ListValue
> list(new base::ListValue());
23 list
->Append(new base::FundamentalValue(false));
24 list
->Append(new base::FundamentalValue(5));
25 base::DictionaryValue
* dict
= new base::DictionaryValue();
27 dict
->SetString("foo", "bar");
28 dict
->Set("baz", new base::ListValue());
30 scoped_ptr
<base::ListValue
> list_copy(list
->DeepCopy());
32 JsArgList
arg_list(list
.get());
34 // |arg_list| should take over |list|'s data.
35 EXPECT_TRUE(list
->empty());
36 EXPECT_TRUE(arg_list
.Get().Equals(list_copy
.get()));