All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jp.vmi.selenium.selenese.log.CookieMap Maven / Gradle / Ivy

package jp.vmi.selenium.selenese.log;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeMap;

import org.openqa.selenium.Cookie;

/**
 * Map of Cookies.
 */
@SuppressWarnings("serial")
public class CookieMap extends TreeMap {

    /**
     * Add cookie information.
     *
     * @param cookie cookie.
     */
    public void add(Cookie cookie) {
        CookieKey key = new CookieKey(
            cookie.getName(),
            cookie.getPath(),
            cookie.getDomain());
        CookieValue value = new CookieValue(
            key,
            cookie.getValue(),
            cookie.getExpiry());
        put(key, value);
    }

    /**
     * Get all cookies as string.
     *
     * @param cookieFilter cookie filter.
     *
     * @return list of cookie string.
     */
    public List allMessages(CookieFilter cookieFilter) {
        List list = new ArrayList();
        for (CookieValue value : values())
            if (cookieFilter.isPass(value.key.name))
                list.add(value.toString());
        return list;
    }

    /**
     * Get differential cookies as string.
     *
     * @param cookieFilter cookie filter.
     * @param prev previous cookie map.
     *
     * @return list of differential cookie string.
     */
    public List diffMessages(CookieFilter cookieFilter, CookieMap prev) {
        List list = new ArrayList();
        for (CookieValue value : values()) {
            if (cookieFilter.isPass(value.key.name)) {
                CookieValue prevValue = prev.get(value.key);
                if (prevValue == null)
                    list.add("[add] " + value);
                else if (!value.equalsWithoutExpiry(prevValue))
                    list.add("[mod] " + value);
            }
        }
        for (CookieKey key : prev.keySet()) {
            if (cookieFilter.isPass(key.name) && !containsKey(key))
                list.add("[del] " + key);
        }
        return list;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy