Bug 193486

Summary: problem with setting, getting cookies
Product: [Applications] konqueror Reporter: lunter <lunter>
Component: kcookiejarAssignee: Konqueror Developers <konq-bugs>
Status: RESOLVED WORKSFORME    
Severity: normal CC: adawit, florian.reinhard
Priority: NOR Keywords: triaged
Version: 4.2.3   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description lunter 2009-05-21 13:00:30 UTC
Version:           4.2.3 (using KDE 4.2.3)
OS:                MS Windows
Installed from:    MS Windows

A)
1. Set cookie (without 'secure' parameter) from http://testdomain.com/
2. Try to get it from https://testdomain.com/
3. You can not.
4. IE, FF, Opera, Safari, Chrome can!

----

B)
1. Set cookie (without 'secure' parameter) from https://testdomain.com/
2. Try to get it from http://testdomain.com/
3. You can not.
4. IE, FF, Opera, Safari, Chrome can!

----

C)
1. Set cookie from http://testdomain.com/
2. Try to get it from http://testdomain.com:81/
3. You can not.
4. IE, FF, Opera, Safari, Chrome can!
Comment 1 lunter 2009-05-21 13:19:06 UTC
D)
<script>
 document.cookie='a=test;expires='+new Date(0).toUTCString()
 alert(document.cookie)
</script>

Konqueror alerts: a=test but should be empty string
IE, FF, Opera, Safari, Chrome alert empty string
Comment 2 Dawit Alemayehu 2010-09-18 07:20:43 UTC
With the exception of condition (C) involving different ports, all the above conditions work fine in KDE 4.5 and higher. We have a test condition for all the cases you listed above. See the "## Check secure cookie handling" section in the unit test file below:

http://websvn.kde.org/trunk/KDE/kdelibs/kioslave/http/kcookiejar/tests/cookie_rfc.test?view=markup

Result of running the unittest:

$ ./kioslave/http/kcookiejar/tests/kcookiejartest
********* Start testing of KCookieJarTest *********
Config: Using QTest library 4.6.3, Qt 4.6.3
PASS   : KCookieJarTest::initTestCase()
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check setting of cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if clearing cookie jar works
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check cookie syntax
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if deleting cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if updating cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if multiple cookies work
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if path restrictions work
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if default path works
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check if cookies are correctly ordered based on path
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check cookies with same name but different paths
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check secure cookie handling
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #1
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #2
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #3
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #4
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #5
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #6
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #7
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check domain restrictions #8
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check cookies with IP address hostnames
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check expiration dates for the Y2K38 problem
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) ## Check non-standard expiration dates (BR# 145244)
QDEBUG : KCookieJarTest::testCookieFile(cookie.test) /usr/local/src/KDE/trunk/kdelibs/kioslave/http/kcookiejar/tests//cookie.test OK
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check setting of cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if clearing cookie jar works
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check cookie syntax
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if deleting cookies works #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if updating cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if multiple cookies work
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if we prepend domain with a dot
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if multiple cookies on a single line work
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## FIXME
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if path restrictions work
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if default path works
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check if cookies are correctly ordered based on path
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check cookies with same name but different paths
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check secure cookie handling
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #2
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #3
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #4
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #5
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #6
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) ## Check domain restrictions #7
QDEBUG : KCookieJarTest::testCookieFile(cookie_rfc.test) /usr/local/src/KDE/trunk/kdelibs/kioslave/http/kcookiejar/tests//cookie_rfc.test OK
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check setting of cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if clearing cookie jar works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check cookie syntax
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if deleting cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if updating cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if multiple cookies work
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if path restrictions work
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if default path works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if cookies are correctly ordered based on path
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check cookies with same name but different paths
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check secure cookie handling
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #2
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #3
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #4
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #5
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #6
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #7
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## RFC Cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check setting of cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check cookie syntax
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if deleting cookies works #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if updating cookies works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if multiple cookies work
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if path restrictions work
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if default path works
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check if cookies are correctly ordered based on path
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check cookies with same name but different paths
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check secure cookie handling
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #2
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #3
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #4
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #5
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #6
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check domain restrictions #7
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check results
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check results for RFC cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check result after saving
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check result for RFC cookies after saving
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check result after saving a second time
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) ## Check result for rfc cookies after saving a second time
QDEBUG : KCookieJarTest::testCookieFile(cookie_saving.test) /usr/local/src/KDE/trunk/kdelibs/kioslave/http/kcookiejar/tests//cookie_saving.test OK
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check CookieGlobalAdvice setting
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Treat all cookies as session cookies
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check host-based domain policies
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check resetting of domain policies
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check domain policies
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check overriding of domain policies #1
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check overriding of domain policies #2
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check resetting of domain policies
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check overriding of domain policies #3
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check overriding of domain policies #4
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) ## Check interaction with session policy
QDEBUG : KCookieJarTest::testCookieFile(cookie_settings.test) /usr/local/src/KDE/trunk/kdelibs/kioslave/http/kcookiejar/tests//cookie_settings.test OK
PASS   : KCookieJarTest::testCookieFile()
PASS   : KCookieJarTest::testParseUrl()
PASS   : KCookieJarTest::testExtractDomains()
PASS   : KCookieJarTest::cleanupTestCase()
Totals: 5 passed, 0 failed, 0 skipped
********* Finished testing of KCookieJarTest ********

Since there is a pending ticket for the port related issue, I am closing this bug report. Feel free to reopen if you can duplicate the issue with current version of KDE (4.5 or higher)...