15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)// found in the LICENSE file. 45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include <string> 65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/time/time.h" 85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "base/values.h" 95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "cc/debug/rendering_stats.h" 105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h" 115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace cc { 135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)namespace { 145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)static std::string ToString(const RenderingStats::TimeDeltaList& list) { 165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) scoped_refptr<base::debug::TracedValue> value = 175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) new base::debug::TracedValue(); 185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) value->BeginArray("list_value"); 195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) list.AddToTracedValue(value.get()); 205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) value->EndArray(); 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) return value->ToString(); 225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)TEST(RenderingStatsTest, TimeDeltaListEmpty) { 255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RenderingStats::TimeDeltaList time_delta_list; 265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ("{\"list_value\":[]}", ToString(time_delta_list)); 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)TEST(RenderingStatsTest, TimeDeltaListNonEmpty) { 305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RenderingStats::TimeDeltaList time_delta_list; 315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list.Append(base::TimeDelta::FromMilliseconds(234)); 325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list.Append(base::TimeDelta::FromMilliseconds(827)); 335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ("{\"list_value\":[234.0,827.0]}", ToString(time_delta_list)); 355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)TEST(RenderingStatsTest, TimeDeltaListAdd) { 385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RenderingStats::TimeDeltaList time_delta_list_a; 395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_a.Append(base::TimeDelta::FromMilliseconds(810)); 405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_a.Append(base::TimeDelta::FromMilliseconds(32)); 415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) RenderingStats::TimeDeltaList time_delta_list_b; 435f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(43)); 445f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(938)); 455f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_b.Append(base::TimeDelta::FromMilliseconds(2)); 465f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 475f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) time_delta_list_a.Add(time_delta_list_b); 485f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) EXPECT_EQ("{\"list_value\":[810.0,32.0,43.0,938.0,2.0]}", 495f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) ToString(time_delta_list_a)); 505f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} 515f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 525f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace 535f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)} // namespace cc 54