| // Copyright 2015 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/sync/test/sessions_hierarchy.h" |
| |
| #include <sstream> |
| |
| namespace fake_server { |
| |
| SessionsHierarchy::SessionsHierarchy() = default; |
| |
| SessionsHierarchy::SessionsHierarchy(const SessionsHierarchy& other) = default; |
| |
| SessionsHierarchy::SessionsHierarchy( |
| std::initializer_list<std::multiset<std::string>> windows) |
| : windows_(windows) {} |
| |
| SessionsHierarchy::~SessionsHierarchy() = default; |
| |
| void SessionsHierarchy::AddWindow(const std::string& tab) { |
| windows_.insert({tab}); |
| } |
| |
| void SessionsHierarchy::AddWindow(const std::multiset<std::string>& tabs) { |
| windows_.insert(tabs); |
| } |
| |
| std::string SessionsHierarchy::ToString() const { |
| std::stringstream output; |
| output << "{"; |
| bool first_window = true; |
| for (const Window& window : windows_) { |
| if (!first_window) |
| output << ","; |
| output << "{"; |
| first_window = false; |
| |
| bool first_tab = true; |
| for (const std::string& tab : window) { |
| if (!first_tab) |
| output << ","; |
| output << tab; |
| first_tab = false; |
| } |
| output << "}"; |
| } |
| output << "}"; |
| return output.str(); |
| } |
| |
| bool SessionsHierarchy::Equals(const SessionsHierarchy& other) const { |
| return windows_ == other.windows_; |
| } |
| |
| } // namespace fake_server |