void CookieWindow::_ShowCookiesForDomain(BString domain) { BString label; label.SetToFormat(B_TRANSLATE("Cookies for %s"), domain.String()); fHeaderView->SetText(label); // Empty the cookie list fCookies->Clear(); // Populate the domain list BNetworkCookieJar::Iterator it = fCookieJar.GetIterator(); const BNetworkCookie* cookie; /* FIXME A direct access to a domain would be needed in BNetworkCookieJar. */ while ((cookie = it.Next()) != NULL) { if (cookie->Domain() == domain) break; } if (cookie == NULL) return; do { new CookieRow(fCookies, *cookie); // Attaches itself to the list cookie = it.Next(); } while (cookie != NULL && cookie->Domain() == domain); }
void CookieTest::SimpleTest() { BNetworkCookieJar jar; char buffer[256]; BUrl url("http://www.chipchapin.com/WebTools/cookietest.php"); time_t t = time(NULL) + 6400; // Cookies expire in 1h45 struct tm* now = gmtime(&t); status_t result; // Add various cookies result = jar.AddCookie("testcookie1=present;", url); CPPUNIT_ASSERT(result == B_OK); strftime(buffer, sizeof(buffer), "testcookie2=present; expires=%A, %d-%b-%Y %H:%M:%S", now); result = jar.AddCookie(buffer, url); CPPUNIT_ASSERT(result == B_OK); strftime(buffer, sizeof(buffer), "testcookie3=present; expires=%A, %d-%b-%Y %H:%M:%S; path=/", now); result = jar.AddCookie(buffer, url); CPPUNIT_ASSERT(result == B_OK); t += 3200; // expire in 2h40 now = gmtime(&t); strftime(buffer, sizeof(buffer), "testcookie4=present; path=/; domain=www.chipchapin.com; " "expires=%A, %d-%b-%Y %H:%M:%S", now); result = jar.AddCookie(buffer, url); CPPUNIT_ASSERT(result == B_OK); // Now check they were all properly added BNetworkCookieJar::Iterator it = jar.GetIterator(); int count = 0; while (it.HasNext()) { count ++; it.Next(); } CPPUNIT_ASSERT_EQUAL(4, count); }