From: Daniel Stenberg Date: Mon, 18 Sep 2023 06:43:00 +0000 (+0200) Subject: test3103: CURLOPT_COOKIELIST test X-Git-Tag: curl-8_4_0~180 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a878864a48b82b4ebece62ae90c69d6f0d71b794;p=thirdparty%2Fcurl.git test3103: CURLOPT_COOKIELIST test --- diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index c93a910fef..a1fa861b3b 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -256,6 +256,6 @@ test3008 test3009 test3010 test3011 test3012 test3013 test3014 test3015 \ test3016 test3017 test3018 test3019 test3020 test3021 test3022 test3023 \ test3024 test3025 test3026 test3027 test3028 test3029 test3030 \ \ -test3100 test3101 test3102 \ +test3100 test3101 test3102 test3103 \ test3200 \ test3201 test3202 diff --git a/tests/data/test3103 b/tests/data/test3103 new file mode 100644 index 0000000000..23a0fea17b --- /dev/null +++ b/tests/data/test3103 @@ -0,0 +1,60 @@ + + + +cookies + + + +# +# Server-side + + +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 6 +Connection: close +Content-Type: text/html +Funny-head: yesyes + +-foo- + + + +# +# Client-side + + +cookies +proxy + + +http + + +lib%TESTNUMBER + + +CURLOPT_COOKIELIST without expiry + + +http://%HOSTIP:%HTTPPORT/%TESTNUMBER + + + +# +# Verify data after the test has been "shot" + + +GET http://localhost/ HTTP/1.1 +Host: localhost +Accept: */* +Proxy-Connection: Keep-Alive +Cookie: c1=v1 + + + + diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc index df44f1be1b..85801e002a 100644 --- a/tests/libtest/Makefile.inc +++ b/tests/libtest/Makefile.inc @@ -75,7 +75,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect libprereq \ lib2402 lib2404 \ lib2502 \ lib3010 lib3025 lib3026 lib3027 \ - lib3100 lib3101 lib3102 + lib3100 lib3101 lib3102 lib3103 chkhostname_SOURCES = chkhostname.c ../../lib/curl_gethostname.c chkhostname_LDADD = @CURL_NETWORK_LIBS@ @@ -689,3 +689,6 @@ lib3101_LDADD = $(TESTUTIL_LIBS) lib3102_SOURCES = lib3102.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) lib3102_LDADD = $(TESTUTIL_LIBS) + +lib3103_SOURCES = lib3103.c $(SUPPORTFILES) +lib3103_LDADD = $(TESTUTIL_LIBS) diff --git a/tests/libtest/lib3103.c b/tests/libtest/lib3103.c new file mode 100644 index 0000000000..01d62f6583 --- /dev/null +++ b/tests/libtest/lib3103.c @@ -0,0 +1,66 @@ +/*************************************************************************** + * _ _ ____ _ + * Project ___| | | | _ \| | + * / __| | | | |_) | | + * | (__| |_| | _ <| |___ + * \___|\___/|_| \_\_____| + * + * Copyright (C) Daniel Stenberg, , et al. + * + * This software is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at https://curl.se/docs/copyright.html. + * + * You may opt to use, copy, modify, merge, publish, distribute and/or sell + * copies of the Software, and permit persons to whom the Software is + * furnished to do so, under the terms of the COPYING file. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + * SPDX-License-Identifier: curl + * + ***************************************************************************/ +#include "test.h" + +#include "memdebug.h" + +int test(char *URL) +{ + CURLcode res = CURLE_OK; + CURLSH *share; + CURL *curl; + + curl_global_init(CURL_GLOBAL_ALL); + + share = curl_share_init(); + curl_share_setopt(share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE); + + curl = curl_easy_init(); + test_setopt(curl, CURLOPT_SHARE, share); + + test_setopt(curl, CURLOPT_VERBOSE, 1L); + test_setopt(curl, CURLOPT_HEADER, 1L); + test_setopt(curl, CURLOPT_PROXY, URL); + test_setopt(curl, CURLOPT_URL, "http://localhost/"); + + test_setopt(curl, CURLOPT_COOKIEFILE, ""); + + /* Set a cookie without Max-age or Expires */ + test_setopt(curl, CURLOPT_COOKIELIST, "Set-Cookie: c1=v1; domain=localhost"); + + res = curl_easy_perform(curl); + if(res) { + fprintf(stderr, "curl_easy_perform() failed: %s\n", + curl_easy_strerror(res)); + } + +test_cleanup: + + /* always cleanup */ + curl_easy_cleanup(curl); + curl_share_cleanup(share); + curl_global_cleanup(); + + return (int)res; +}