0

I have a function called deleteCookie to delete cookies. When I do some test cases, any of the test cases seems fine except for a cookie name=John. I have set this cookie two or three days ago but when I'm trying to delete it using my own function, name=John is still here. I'm wondering is there anything wrong with my function, or is there anything I don't know about when I'm deleting John

window.onload = () => {
    "use strict";
    let setCookie = (cname, cvalue, exdays, cpath) => {
        let d = new Date();
        d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
        d.toUTCString();
        document.cookie = `${cname}=${cvalue}; expires=${d}; path=${cpath}`;
    }
    let getCookie = (cname) => {
        let ca = decodeURIComponent(document.cookie).split("; ");
        let name = cname + "=";
        for (let i =0; i < ca.length; i++) {
            while (ca[i][0] === " ") {
                ca[i] = ca[i].substring(1)
            }
            if (ca[i].indexOf(name) === 0) {
                return ca[i].substring(name.length, ca[i].length)
            }
        }
    }
    let deleteCookie = (cname, cpath) => {
        let c = getCookie(cname);
        if (c !== undefined && c !== null) {
            let d = new Date(0);
            d.toUTCString();
            document.cookie = `${cname}=; expires=${d}; path=${cpath}`;
            return c;
        } else {
            return -1
        }
    }
    let changeCookie = (cname, cvalue, exdays, cpath) => {
        let c = getCookie(cname);
        if (c !== undefined && c !== null) {
            let d = new Date();
            d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
            d.toUTCString();
            document.cookie = `${cname}=${cvalue}; expires=${exdays}; path=${cpath}`;
        } else {
            return -1
        }
    }
    setCookie("name", "Ben", 7, "/home/ubuntu/Documents/test/test.html");
    console.log(document.cookie)
    changeCookie("name", "Sam", 7, "/home/ubuntu/Documents/test/test.html");
    console.log(document.cookie);
    console.log(deleteCookie("name", "/home/ubuntu/Documents/test/test.html"));
    console.log(document.cookie);
    console.log(deleteCookie("name", "/home/ubuntu/Documents/test/test.html"));
    console.log(document.cookie);

}

0 Answers0