@qooxdoo/framework
Version:
The JS Framework for Coders
129 lines (101 loc) • 3.82 kB
JavaScript
/* ************************************************************************
qooxdoo - the new era of web development
http://qooxdoo.org
Copyright:
2007-2009 1&1 Internet AG, Germany, http://www.1und1.de
License:
MIT: https://opensource.org/licenses/MIT
See the LICENSE file in the project's top-level directory for details.
Authors:
* Christian Hagendorn (chris_schmidt)
************************************************************************ */
qx.Class.define("qx.test.bom.Cookie", {
extend: qx.dev.unit.TestCase,
members: {
testSaveSimpleData() {
var key = "qx.test.bom.Cookie.testSaveSimpleData";
var dataToSave = "Qooxdoo";
// Check that no value exists
var result = qx.bom.Cookie.get(key);
this.assertNull(result, "Empty check before start");
// Set and restore value
qx.bom.Cookie.set(key, dataToSave);
result = qx.bom.Cookie.get(key);
this.assertEquals(
dataToSave,
result,
"It is expected that this test fails" +
" if you start this test from a file system with Google Chrome."
);
// remove value
qx.bom.Cookie.del(key);
result = qx.bom.Cookie.get(key);
this.assertNull(result, "Remove value");
},
testSaveData() {
var key1 = "qx.test.bom.Cookie.testSaveData2";
var key2 = "qx.test.bom.Cookie.testSaveData1";
var dataToSave1 = "Qooxdoo 1";
var dataToSave2 = "Qooxdoo 2";
// Check that no values exist
var result1 = qx.bom.Cookie.get(key1);
var result2 = qx.bom.Cookie.get(key2);
this.assertNull(result1, "Empty check before start (one)");
this.assertNull(result2, "Empty check before start (tow)");
// Set and restore values
qx.bom.Cookie.set(key1, dataToSave1);
qx.bom.Cookie.set(key2, dataToSave2);
result1 = qx.bom.Cookie.get(key1);
result2 = qx.bom.Cookie.get(key2);
this.assertEquals(
dataToSave1,
result1,
"It is expected that this test fails" +
" if you start this test from a file system with Google Chrome."
);
this.assertEquals(
dataToSave2,
result2,
"It is expected that this test fails" +
" if you start this test from a file system with Google Chrome."
);
// remove values
qx.bom.Cookie.del(key1);
qx.bom.Cookie.del(key2);
result1 = qx.bom.Cookie.get(key1);
result2 = qx.bom.Cookie.get(key2);
this.assertNull(result1, "Remove value (one)");
this.assertNull(result2, "Remove value (tow)");
},
testEncoding() {
var special = "~!@#$%^&*(){}[]=:/,;?+'\"\\";
var utf = "äëíöü";
qx.bom.Cookie.set("special", special);
qx.bom.Cookie.set("utf", utf);
var escapedSpecial = escape(special);
var escapedUtf = escape(utf);
var expectedSpecial = unescape(escapedSpecial);
var resultSpecial = qx.bom.Cookie.get("special");
var expectedUtf = unescape(escapedUtf);
var resultUtf = qx.bom.Cookie.get("utf");
var escapedCookie = ["manualEscaped", "=", escapedUtf];
document.cookie = escapedCookie.join("");
this.assertNull(qx.bom.Cookie.get("manualEscaped"));
this.assertTrue(
decodeURIComponent(escapedSpecial) == unescape(escapedSpecial),
"There is some incompatible characters."
);
// this.assertTrue((decodeURIComponent(escapedUtf) == unescape(escapedUtf)), 'There is some incompatible characters.');
this.assertEquals(
expectedSpecial,
resultSpecial,
"There is some incompatible characters."
);
this.assertEquals(
expectedUtf,
resultUtf,
"There is some incompatible characters."
);
}
}
});