147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org/* 247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Copyright 2009 The WebRTC Project Authors. All rights reserved. 347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * 447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * Use of this source code is governed by a BSD-style license 547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * that can be found in the LICENSE file in the root of the source 647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * tree. An additional intellectual property rights grant can be found 747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * in the file PATENTS. All contributing project authors may 847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org * be found in the AUTHORS file in the root of the source tree. 947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org */ 1047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include <vector> 1247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/gunit.h" 1347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org#include "webrtc/base/json.h" 1447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 1547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_s("foo"); 1647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_sn("99"); 1747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_si("-99"); 1847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_sb("true"); 1947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_sd("1.2"); 2047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_n(12); 2147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_i(-12); 2247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_u(34U); 2347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_b(true); 2447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value in_d(1.2); 2547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value big_sn("12345678901234567890"); 2647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value big_si("-12345678901234567890"); 2747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value big_u(0xFFFFFFFF); 2847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value bad_a(Json::arrayValue); 2947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstatic Json::Value bad_o(Json::objectValue); 3047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 3147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetString) { 3247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::string out; 3347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_s, &out)); 3447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("foo", out); 3547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_sn, &out)); 3647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("99", out); 3747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_si, &out)); 3847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("-99", out); 3947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_i, &out)); 4047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("-12", out); 4147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_n, &out)); 4247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("12", out); 4347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_u, &out)); 4447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("34", out); 4547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetStringFromJson(in_b, &out)); 4647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ("true", out); 4747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // Not supported here yet. 4847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetStringFromJson(bad_a, &out)); 4947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetStringFromJson(bad_o, &out)); 5047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 5147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 5247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetInt) { 5347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org int out; 5447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_sn, &out)); 5547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(99, out); 5647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_si, &out)); 5747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(-99, out); 5847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_n, &out)); 5947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(12, out); 6047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_i, &out)); 6147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(-12, out); 6247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_u, &out)); 6347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(34, out); 6447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetIntFromJson(in_b, &out)); 6547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(1, out); 6647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(in_s, &out)); 6747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(big_sn, &out)); 6847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(big_si, &out)); 6947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(big_u, &out)); 7047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(bad_a, &out)); 7147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetIntFromJson(bad_o, &out)); 7247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 7347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 7447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetUInt) { 7547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org unsigned int out; 7647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetUIntFromJson(in_sn, &out)); 7747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(99U, out); 7847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetUIntFromJson(in_n, &out)); 7947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(12U, out); 8047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetUIntFromJson(in_u, &out)); 8147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(34U, out); 8247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetUIntFromJson(in_b, &out)); 8347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(1U, out); 8447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetUIntFromJson(big_u, &out)); 8547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(0xFFFFFFFFU, out); 8647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(in_s, &out)); 8747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // TODO: Fail reading negative strings. 8847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org // EXPECT_FALSE(GetUIntFromJson(in_si, &out)); 8947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(in_i, &out)); 9047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(big_sn, &out)); 9147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(big_si, &out)); 9247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(bad_a, &out)); 9347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetUIntFromJson(bad_o, &out)); 9447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 9547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 9647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetBool) { 9747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org bool out; 9847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(in_sb, &out)); 9947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 10047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(in_n, &out)); 10147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 10247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(in_i, &out)); 10347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 10447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(in_u, &out)); 10547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 10647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(in_b, &out)); 10747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 10847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetBoolFromJson(big_u, &out)); 10947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(true, out); 11047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(in_s, &out)); 11147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(in_sn, &out)); 11247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(in_si, &out)); 11347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(big_sn, &out)); 11447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(big_si, &out)); 11547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(bad_a, &out)); 11647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetBoolFromJson(bad_o, &out)); 11747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 11847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 11947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetDouble) { 12047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org double out; 12147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_sn, &out)); 12247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(99, out); 12347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_si, &out)); 12447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(-99, out); 12547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_sd, &out)); 12647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(1.2, out); 12747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_n, &out)); 12847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(12, out); 12947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_i, &out)); 13047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(-12, out); 13147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_u, &out)); 13247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(34, out); 13347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_b, &out)); 13447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(1, out); 13547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetDoubleFromJson(in_d, &out)); 13647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(1.2, out); 13747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetDoubleFromJson(in_s, &out)); 13847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 13947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 14047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetFromArray) { 14147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value a, out; 14247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org a.append(in_s); 14347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org a.append(in_i); 14447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org a.append(in_u); 14547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org a.append(in_b); 14647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetValueFromJsonArray(a, 0, &out)); 14747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetValueFromJsonArray(a, 3, &out)); 14847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetValueFromJsonArray(a, 99, &out)); 14947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetValueFromJsonArray(a, 0xFFFFFFFF, &out)); 15047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 15147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 15247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, GetFromObject) { 15347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value o, out; 15447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org o["string"] = in_s; 15547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org o["int"] = in_i; 15647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org o["uint"] = in_u; 15747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org o["bool"] = in_b; 15847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetValueFromJsonObject(o, "int", &out)); 15947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(GetValueFromJsonObject(o, "bool", &out)); 16047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetValueFromJsonObject(o, "foo", &out)); 16147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_FALSE(GetValueFromJsonObject(o, "", &out)); 16247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 16347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 16447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgnamespace { 16547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgtemplate <typename T> 16647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgstd::vector<T> VecOf3(const T& a, const T& b, const T& c) { 16747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<T> in; 16847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.push_back(a); 16947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.push_back(b); 17047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.push_back(c); 17147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org return in; 17247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 17347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgtemplate <typename T> 17447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgJson::Value JsonVecOf3(const T& a, const T& b, const T& c) { 17547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value in(Json::arrayValue); 17647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.append(a); 17747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.append(b); 17847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org in.append(c); 17947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org return in; 18047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 18147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} // unnamed namespace 18247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 18347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, ValueVectorToFromArray) { 18447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<Json::Value> in = VecOf3<Json::Value>("a", "b", "c"); 18547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = ValueVectorToJsonArray(in); 18647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 18747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 18847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i].asString(), out[i].asString()); 18947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 19047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<Json::Value>("a", "b", "c"); 19147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 19247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<Json::Value> outj; 19347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToValueVector(inj, &outj)); 19447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 19547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 19647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 19747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 19847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 19947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, IntVectorToFromArray) { 20047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<int> in = VecOf3<int>(1, 2, 3); 20147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = IntVectorToJsonArray(in); 20247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 20347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 20447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], out[i].asInt()); 20547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 20647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<int>(1, 2, 3); 20747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 20847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<int> outj; 20947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToIntVector(inj, &outj)); 21047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 21147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 21247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 21347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 21447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 21547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, UIntVectorToFromArray) { 21647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<unsigned int> in = VecOf3<unsigned int>(1, 2, 3); 21747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = UIntVectorToJsonArray(in); 21847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 21947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 22047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], out[i].asUInt()); 22147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 22247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<unsigned int>(1, 2, 3); 22347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 22447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<unsigned int> outj; 22547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToUIntVector(inj, &outj)); 22647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 22747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 22847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 22947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 23047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 23147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, StringVectorToFromArray) { 23247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<std::string> in = VecOf3<std::string>("a", "b", "c"); 23347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = StringVectorToJsonArray(in); 23447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 23547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 23647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], out[i].asString()); 23747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 23847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<std::string>("a", "b", "c"); 23947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 24047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<std::string> outj; 24147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToStringVector(inj, &outj)); 24247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 24347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 24447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 24547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 24647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 24747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, BoolVectorToFromArray) { 24847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<bool> in = VecOf3<bool>(false, true, false); 24947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = BoolVectorToJsonArray(in); 25047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 25147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 25247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], out[i].asBool()); 25347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 25447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<bool>(false, true, false); 25547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 25647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<bool> outj; 25747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToBoolVector(inj, &outj)); 25847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 25947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 26047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 26147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 26247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org 26347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.orgTEST(JsonTest, DoubleVectorToFromArray) { 26447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<double> in = VecOf3<double>(1.0, 2.0, 3.0); 26547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value out = DoubleVectorToJsonArray(in); 26647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in.size(), out.size()); 26747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); ++i) { 26847be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], out[i].asDouble()); 26947be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 27047be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org Json::Value inj = JsonVecOf3<double>(1.0, 2.0, 3.0); 27147be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(inj, out); 27247be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org std::vector<double> outj; 27347be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_TRUE(JsonArrayToDoubleVector(inj, &outj)); 27447be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org for (Json::Value::ArrayIndex i = 0; i < in.size(); i++) { 27547be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org EXPECT_EQ(in[i], outj[i]); 27647be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org } 27747be73b8629244d6bb63a28198f97f040ce53d21henrike@webrtc.org} 278