Home | History | Annotate | Download | only in platform
      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 #include "config.h"
      6 
      7 #include "platform/TracedValue.h"
      8 
      9 #include <gtest/gtest.h>
     10 
     11 using namespace blink;
     12 
     13 namespace {
     14 
     15 TEST(TracedValueTest, FlatDictionary)
     16 {
     17     RefPtr<TracedValue> value = TracedValue::create();
     18     value->setInteger("int", 2014);
     19     value->setDouble("double", 0.0);
     20     value->setBoolean("bool", true);
     21     value->setString("string", "string");
     22     String json = value->asTraceFormat();
     23     EXPECT_EQ("{\"int\":2014,\"double\":0,\"bool\":true,\"string\":\"string\"}", json);
     24 }
     25 
     26 TEST(TracedValueTest, Hierarchy)
     27 {
     28     RefPtr<TracedValue> value = TracedValue::create();
     29     value->setInteger("i0", 2014);
     30     value->beginDictionary("dict1");
     31     value->setInteger("i1", 2014);
     32     value->beginDictionary("dict2");
     33     value->setBoolean("b2", false);
     34     value->endDictionary();
     35     value->setString("s1", "foo");
     36     value->endDictionary();
     37     value->setDouble("d0", 0.0);
     38     value->setBoolean("b0", true);
     39     value->beginArray("a1");
     40     value->pushInteger(1);
     41     value->pushBoolean(true);
     42     value->beginDictionary();
     43     value->setInteger("i2", 3);
     44     value->endDictionary();
     45     value->endArray();
     46     value->setString("s0", "foo");
     47     String json = value->asTraceFormat();
     48     EXPECT_EQ("{\"i0\":2014,\"dict1\":{\"i1\":2014,\"dict2\":{\"b2\":false},\"s1\":\"foo\"},\"d0\":0,\"b0\":true,\"a1\":[1,true,{\"i2\":3}],\"s0\":\"foo\"}", json);
     49 }
     50 
     51 }
     52