blob: ec686fe9e6127d3241ea910084c52ffdbe591f45 [file] [log] [blame]
// Copyright (c) 2011 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.
#ifndef CHROME_TEST_WEBDRIVER_COOKIE_H_
#define CHROME_TEST_WEBDRIVER_COOKIE_H_
#pragma once
#include <string>
#include "base/time.h"
#include "base/values.h"
namespace webdriver {
// Class used to convert cookies to various formats.
class Cookie {
public:
explicit Cookie(const std::string& cookie);
explicit Cookie(const DictionaryValue& dict);
~Cookie();
// Converts a |time| object to a date time string, according to RFC 1123,
// which is required by RFC 2616, section 14.21.
static std::string ToDateString(const base::Time& time);
DictionaryValue* ToDictionary();
// ToJSONString() returns a string form of a JSON object with the required
// WebDriver tags. Note that this format cannot be used to set a cookie in
// the chrome browser. Example { "name"="foo", "value"="bar"}
std::string ToJSONString();
// ToString() returns a string format expected by chrome to for a cookie.
// Example: "foo=bar"
std::string ToString();
bool valid() const { return valid_; }
const std::string& name() const { return name_; }
const std::string& value() const { return value_; }
const std::string& path() const { return path_; }
const std::string& domain() const { return domain_; }
const base::Time& expiration() const { return expiration_; }
bool secure() const { return secure_; }
bool http_only() const { return http_; }
private:
std::string name_;
std::string value_;
std::string path_;
std::string domain_;
base::Time expiration_;
bool secure_;
bool http_;
bool valid_;
DISALLOW_COPY_AND_ASSIGN(Cookie);
};
} // namespace webdriver
#endif // CHROME_TEST_WEBDRIVER_COOKIE_H_