123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- unit tccookies;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, fpcunit, testutils, testregistry,
- httpdefs;
- type
- TTestTCookies = class(TTestCase)
- published
- procedure TestParseWriteRead;
- end;
- implementation
- procedure TTestTCookies.TestParseWriteRead;
- const
- Cookies: array of String = (
- 'Set-Cookie: cookie1',
- 'Set-Cookie: cookie2;',
- 'Set-Cookie: cookie3=1507337',
- 'Set-Cookie: cookie4=1507337;',
- 'Set-Cookie: cookie5=1507337; path',
- 'Set-Cookie: cookie6=1507337; path=',
- 'Set-Cookie: cookie7=1507337; path=/',
- 'Set-Cookie: cookie8=1507337; secure',
- 'Set-Cookie: cookie9=1507337; secure=',
- 'Set-Cookie: cookie10=1507337; secure=false',
- 'Set-Cookie: cookie11=1507337; secure; httponly',
- 'Set-Cookie: cookie12=1507337; SameSite=None',
- 'Set-Cookie: cookie13=1507337; SameSite=none',
- 'Set-Cookie: cookie14=1507337; path=/; secure; httponly; SameSite=None'
- );
- var
- Cookie: String;
- C: TCookie;
- begin
- with TCookies.Create(TCookie) do
- try
- for Cookie in Cookies do
- AddFromString(Cookie);
- AssertEquals(Count, Length(Cookies));
- C := FindCookie('cookie0');
- AssertNull(C);
- C := FindCookie('cookie1');
- AssertNotNull(C);
- AssertEquals(C.Value, '');
- C := FindCookie('cookie2');
- AssertNotNull(C);
- AssertEquals(C.Value, '');
- C := FindCookie('cookie3');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- C := FindCookie('cookie4');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- C := FindCookie('cookie5');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertEquals(C.Path, '');
- C := FindCookie('cookie6');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertEquals(C.Path, '');
- C := FindCookie('cookie7');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertEquals(C.Path, '/');
- C := FindCookie('cookie8');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertTrue(C.Secure);
- C := FindCookie('cookie9');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertTrue(C.Secure);
- C := FindCookie('cookie10');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertFalse(C.Secure);
- C := FindCookie('cookie11');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertTrue(C.Secure);
- AssertTrue(C.HttpOnly);
- C := FindCookie('cookie12');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertTrue(C.SameSite = ssNone);
- C := FindCookie('cookie13');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertTrue(C.SameSite = ssNone);
- C := FindCookie('cookie14');
- AssertNotNull(C);
- AssertEquals(C.Value, '1507337');
- AssertEquals(C.Path, '/');
- AssertTrue(C.Secure);
- AssertTrue(C.HttpOnly);
- AssertTrue(C.SameSite = ssNone);
- finally
- Free;
- end;
- end;
- initialization
- RegisterTest(TTestTCookies);
- end.
|