2017-04-20 17:03:53 +03:00
|
|
|
#include "gtest/gtest.h"
|
|
|
|
|
|
|
|
#include "nsHttpHeaderArray.h"
|
|
|
|
|
|
|
|
|
|
|
|
TEST(TestHeaders, DuplicateHSTS) {
|
|
|
|
// When the Strict-Transport-Security header is sent multiple times, its
|
|
|
|
// effective value is the value of the first item. It is not merged as other
|
|
|
|
// headers are.
|
|
|
|
mozilla::net::nsHttpHeaderArray headers;
|
|
|
|
nsresult rv = headers.SetHeaderFromNet(
|
2017-04-27 17:48:36 +03:00
|
|
|
mozilla::net::nsHttp::Strict_Transport_Security,
|
|
|
|
NS_LITERAL_CSTRING("Strict_Transport_Security"),
|
|
|
|
NS_LITERAL_CSTRING("max-age=360"), true);
|
2017-04-20 17:03:53 +03:00
|
|
|
ASSERT_EQ(rv, NS_OK);
|
|
|
|
|
|
|
|
nsAutoCString h;
|
|
|
|
rv = headers.GetHeader(mozilla::net::nsHttp::Strict_Transport_Security, h);
|
|
|
|
ASSERT_EQ(rv, NS_OK);
|
|
|
|
ASSERT_EQ(h.get(), "max-age=360");
|
|
|
|
|
|
|
|
rv = headers.SetHeaderFromNet(
|
2017-04-27 17:48:36 +03:00
|
|
|
mozilla::net::nsHttp::Strict_Transport_Security,
|
|
|
|
NS_LITERAL_CSTRING("Strict_Transport_Security"),
|
|
|
|
NS_LITERAL_CSTRING("max-age=720"), true);
|
2017-04-20 17:03:53 +03:00
|
|
|
ASSERT_EQ(rv, NS_OK);
|
|
|
|
|
|
|
|
rv = headers.GetHeader(mozilla::net::nsHttp::Strict_Transport_Security, h);
|
|
|
|
ASSERT_EQ(rv, NS_OK);
|
|
|
|
ASSERT_EQ(h.get(), "max-age=360");
|
|
|
|
}
|