// Copyright 2014 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 "net/log/test_net_log_entry.h" #include #include "base/json/json_writer.h" #include "base/logging.h" #include "base/values.h" namespace net { TestNetLogEntry::TestNetLogEntry(NetLogEventType type, const base::TimeTicks& time, NetLogSource source, NetLogEventPhase phase, std::unique_ptr params) : type(type), time(time), source(source), phase(phase), params(std::move(params)) { // Only entries without a NetLog should have an invalid source. CHECK(source.IsValid()); } TestNetLogEntry::TestNetLogEntry(const TestNetLogEntry& entry) { *this = entry; } TestNetLogEntry::~TestNetLogEntry() = default; TestNetLogEntry& TestNetLogEntry::operator=(const TestNetLogEntry& entry) { type = entry.type; time = entry.time; source = entry.source; phase = entry.phase; params.reset(entry.params ? entry.params->DeepCopy() : NULL); return *this; } bool TestNetLogEntry::GetStringValue(const std::string& name, std::string* value) const { if (!params) return false; return params->GetString(name, value); } bool TestNetLogEntry::GetIntegerValue(const std::string& name, int* value) const { if (!params) return false; return params->GetInteger(name, value); } bool TestNetLogEntry::GetBooleanValue(const std::string& name, bool* value) const { if (!params) return false; return params->GetBoolean(name, value); } bool TestNetLogEntry::GetListValue(const std::string& name, base::ListValue** value) const { if (!params) return false; return params->GetList(name, value); } bool TestNetLogEntry::GetNetErrorCode(int* value) const { return GetIntegerValue("net_error", value); } std::string TestNetLogEntry::GetParamsJson() const { if (!params) return std::string(); std::string json; base::JSONWriter::Write(*params, &json); return json; } } // namespace net