blob: d43df976fa347d6bf5b33d00404781c35cf49fd4 [file] [log] [blame]
// 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