1 // Copyright 2015 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 "components/sync/test/fake_server/sessions_hierarchy.h" 6 7 #include <sstream> 8 9 namespace fake_server { 10 SessionsHierarchy()11SessionsHierarchy::SessionsHierarchy() {} 12 13 SessionsHierarchy::SessionsHierarchy(const SessionsHierarchy& other) = default; 14 SessionsHierarchy(std::initializer_list<std::multiset<std::string>> windows)15SessionsHierarchy::SessionsHierarchy( 16 std::initializer_list<std::multiset<std::string>> windows) 17 : windows_(windows) {} 18 ~SessionsHierarchy()19SessionsHierarchy::~SessionsHierarchy() {} 20 AddWindow(const std::string & tab)21void SessionsHierarchy::AddWindow(const std::string& tab) { 22 windows_.insert({tab}); 23 } 24 AddWindow(const std::multiset<std::string> & tabs)25void SessionsHierarchy::AddWindow(const std::multiset<std::string>& tabs) { 26 windows_.insert(tabs); 27 } 28 ToString() const29std::string SessionsHierarchy::ToString() const { 30 std::stringstream output; 31 output << "{"; 32 for (auto window_it = windows_.begin(); window_it != windows_.end(); 33 ++window_it) { 34 if (window_it != windows_.begin()) 35 output << ","; 36 output << "{"; 37 38 Window window = *window_it; 39 for (auto tab_it = window.begin(); tab_it != window.end(); ++tab_it) { 40 if (tab_it != window.begin()) 41 output << ","; 42 output << *tab_it; 43 } 44 output << "}"; 45 } 46 output << "}"; 47 return output.str(); 48 } 49 Equals(const SessionsHierarchy & other) const50bool SessionsHierarchy::Equals(const SessionsHierarchy& other) const { 51 return windows_ == other.windows_; 52 } 53 54 } // namespace fake_server 55