Add a round-trip test that stats.toJson output is parseable
Bug: webrtc:10173
Change-Id: Icf22901824fc85cc390e9450c480d3b7a728dc34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/165385
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30194}
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index 7541cfa..7f24eb6 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -595,6 +595,7 @@
"../rtc_base:checks",
"../rtc_base:gunit_helpers",
"../rtc_base:rtc_base_tests_utils",
+ "../rtc_base:rtc_json",
"../rtc_base/third_party/base64",
"../rtc_base/third_party/sigslot",
"../system_wrappers:metrics",
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 97658d0..59d2e5d 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -42,6 +42,7 @@
#include "rtc_base/fake_ssl_identity.h"
#include "rtc_base/gunit.h"
#include "rtc_base/logging.h"
+#include "rtc_base/strings/json.h"
#include "rtc_base/time_utils.h"
using ::testing::AtLeast;
@@ -769,6 +770,17 @@
EXPECT_NE(c.get(), b.get());
}
+TEST_F(RTCStatsCollectorTest, ToJsonProducesParseableJson) {
+ ExampleStatsGraph graph = SetupExampleStatsGraphForSelectorTests();
+ rtc::scoped_refptr<const RTCStatsReport> report = stats_->GetStatsReport();
+ std::string json_format = report->ToJson();
+ Json::Reader reader;
+ Json::Value json_value;
+ ASSERT_TRUE(reader.parse(json_format, json_value));
+ // A very brief sanity check on the result.
+ EXPECT_EQ(report->size(), json_value.size());
+}
+
TEST_F(RTCStatsCollectorTest, CollectRTCCertificateStatsSingle) {
const char kTransportName[] = "transport";