2016-10-17 23:53:32 +03:00
#!/bin/bash
#
# Copyright (C) 2013 Jeremy Whiting <jeremy.whiting@collabora.com>
# Copyright (C) 2016 Sjoerd Simons <sjoerd@luon.net>
#
2018-01-30 22:26:26 +03:00
# SPDX-License-Identifier: LGPL-2.0+
#
2016-10-17 23:53:32 +03:00
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
2021-12-07 04:20:55 +03:00
# License along with this library. If not, see <https://www.gnu.org/licenses/>.
2016-10-17 23:53:32 +03:00
set -euo pipefail
echo '1..4'
. $( dirname $0 ) /libtest.sh
2017-09-01 23:15:33 +03:00
setup_fake_remote_repo1 "archive" "" \
2018-03-14 17:36:48 +03:00
--expected-cookies foo = bar \
--expected-cookies baz = badger
2016-10-17 23:53:32 +03:00
assert_fail ( ) {
2016-12-08 05:02:30 +03:00
if $@ ; then
( echo 1>& 2 " $@ did not fail " ; exit 1)
2016-10-17 23:53:32 +03:00
fi
}
cd ${ test_tmpdir }
rm repo -rf
mkdir repo
2017-03-24 17:35:59 +03:00
ostree_repo_init repo
2016-10-17 23:53:32 +03:00
${ CMD_PREFIX } ostree --repo= repo remote add --set= gpg-verify= false origin $( cat httpd-address) /ostree/gnomerepo
# Sanity check the setup, without cookies the pull should fail
assert_fail ${ CMD_PREFIX } ostree --repo= repo pull origin main
echo "ok, setup done"
# Add 2 cookies, pull should succeed now
${ CMD_PREFIX } ostree --repo= repo remote add-cookie origin 127.0.0.1 / foo bar
${ CMD_PREFIX } ostree --repo= repo remote add-cookie origin 127.0.0.1 / baz badger
2016-12-08 05:02:30 +03:00
assert_file_has_content repo/origin.cookies.txt foo.*bar
assert_file_has_content repo/origin.cookies.txt baz.*badger
2016-10-17 23:53:32 +03:00
${ CMD_PREFIX } ostree --repo= repo pull origin main
echo "ok, initial cookie pull succeeded"
# Delete one cookie, if successful pulls will fail again
${ CMD_PREFIX } ostree --repo= repo remote delete-cookie origin 127.0.0.1 / baz badger
2016-12-08 05:02:30 +03:00
assert_file_has_content repo/origin.cookies.txt foo.*bar
assert_not_file_has_content repo/origin.cookies.txt baz.*badger
2016-10-17 23:53:32 +03:00
assert_fail ${ CMD_PREFIX } ostree --repo= repo pull origin main
echo "ok, delete succeeded"
# Re-add the removed cooking and things succeed again, verified the removal
# removed exactly one cookie
${ CMD_PREFIX } ostree --repo= repo remote add-cookie origin 127.0.0.1 / baz badger
2016-12-08 05:02:30 +03:00
assert_file_has_content repo/origin.cookies.txt foo.*bar
assert_file_has_content repo/origin.cookies.txt baz.*badger
2016-10-17 23:53:32 +03:00
${ CMD_PREFIX } ostree --repo= repo pull origin main
echo "ok, second cookie pull succeeded"