diff options
Diffstat (limited to 'tests/t0112-ci.sh')
| -rw-r--r-- | tests/t0112-ci.sh | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/t0112-ci.sh b/tests/t0112-ci.sh new file mode 100644 index 0000000..d8673e4 --- /dev/null +++ b/tests/t0112-ci.sh @@ -0,0 +1,83 @@ +#!/bin/sh + +test_description='Check content on ci page' +. ./setup.sh + +# The ci settings are only inherited by repositories which are declared +# after them, which is used below to get a repository with no ci url and +# one with a tag-only ci url. +cat >cgitrc.ci <<EOF +virtual-root=/ +cache-root=$PWD/cache +cache-size=0 + +repo.url=tagonly +repo.path=$PWD/repos/foo/.git +repo.ci-tag-url=https://ci.example.org/tagonly/\$ref + +ci-branch-url=https://ci.example.org/job/\$slug/job/\$ref +ci-tag-url=https://ci.example.org/job/\$slug/view/tags/job/\$ref + +repo.url=foo +repo.path=$PWD/repos/foo/.git + +repo.url=sayauz/web.git +repo.path=$PWD/repos/foo/.git + +repo.url=override +repo.path=$PWD/repos/foo/.git +repo.ci-url=https://ci.example.org/override/\$repo/\$\$/\$ref +EOF + +git --git-dir="$PWD/repos/foo/.git" tag v0.17.3.2 master + +cgit_ci() +{ + CGIT_CONFIG="$PWD/cgitrc.ci" QUERY_STRING="url=$1" cgit +} + +test_expect_success 'redirect to the branch ci url' ' + cgit_ci "foo/ci&h=master" >tmp && + grep "^Status: 302 Found$" tmp && + grep "^Location: https://ci.example.org/job/foo/job/master$" tmp +' + +test_expect_success 'redirect to the tag ci url' ' + cgit_ci "foo/ci&h=v0.17.3.2" >tmp && + grep "^Status: 302 Found$" tmp && + grep "^Location: https://ci.example.org/job/foo/view/tags/job/v0.17.3.2$" tmp +' + +test_expect_success 'redirect to the default branch ci url' ' + cgit_ci "foo/ci" >tmp && + grep "^Location: https://ci.example.org/job/foo/job/master$" tmp +' + +test_expect_success '$slug strips ".git" and replaces slashes' ' + cgit_ci "sayauz/web.git/ci&h=v0.17.3.2" >tmp && + grep "^Location: https://ci.example.org/job/sayauz-web/view/tags/job/v0.17.3.2$" tmp +' + +test_expect_success 'repo.ci-url overrides and expands $repo and $$' ' + cgit_ci "override/ci&h=master" >tmp && + grep -F "Location: https://ci.example.org/override/override/\$/master" tmp +' + +test_expect_success 'repo.ci-tag-url does not apply to branches' ' + cgit_ci "tagonly/ci&h=v0.17.3.2" >tmp && + grep "^Location: https://ci.example.org/tagonly/v0.17.3.2$" tmp && + cgit_ci "tagonly/ci&h=master" >tmp && + grep "^Status: 404 Not found$" tmp +' + +test_expect_success 'find ci tab' ' + cgit_ci "foo/refs&h=master" >tmp && + grep "href=./foo/ci/.>ci</a>" tmp +' + +test_expect_success 'no ci tab without a ci url' ' + cgit_url "foo/refs" >tmp && + ! grep ">ci</a>" tmp +' + +test_done |