Diffstat (limited to 'tests')
| -rwxr-xr-x | tests/t0106-diff.sh | 97 |
1 files changed, 95 insertions, 2 deletions
diff --git a/tests/t0106-diff.sh b/tests/t0106-diff.sh index e4751e9..4490ecc 100755 --- a/tests/t0106-diff.sh +++ b/tests/t0106-diff.sh @@ -45,6 +45,14 @@ test_expect_success 'ref picker: auto-submit on change' ' grep "onchange=.this.form.submit()." tmp ' +test_expect_success 'flip link present' ' + grep "<a title=.swap from and to. class=.button. href=./foo/diff/?" tmp +' + +test_expect_success 'flip link swaps the default refs' ' + grep "/foo/diff/?id2=master&idoff=1" tmp +' + test_expect_success 'compare two refs: foo/diff?id=master&id2=HEAD' ' cgit_query "url=foo/diff&id=master&id2=HEAD" >tmp ' @@ -63,9 +71,17 @@ test_expect_success 'ref picker: to: shows master when id=master' ' grep "master" tmp ' -test_expect_success 'ref picker: from: empty when no id2' ' +test_expect_success 'ref picker: from: preselects the to ref when no id2' ' cgit_query "url=foo/diff" >tmp && - grep "<select name=.id2." tmp + grep "<select name=.id2. onchange=.this.form.submit();.><option value=.master. selected=.selected.>master</option>" tmp +' + +test_expect_success 'from offset: one back when no id2' ' + grep "name=.id2off. title=.N commits back from the selected ref. value=.1.>" tmp +' + +test_expect_success 'to offset: empty when idoff unset' ' + grep "name=.idoff. title=.N commits back from the selected ref.>" tmp ' test_expect_success 'compare initial commit with HEAD' ' @@ -77,4 +93,81 @@ test_expect_success 'diff with HEAD and root shows content' ' grep "diffstat" tmp ' +test_expect_success 'flip link swaps explicit refs' ' + cgit_query "url=foo/diff&id=master&id2=HEAD" >tmp && + grep "/foo/diff/?id=HEAD&id2=master" tmp +' + +test_expect_success 'flip link omits id for a diff against a root commit' ' + root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) && + cgit_query "url=foo/diff&id=$root" >tmp && + grep "href=./foo/diff/?id2=$root." tmp +' + +test_expect_success 'offset input: to: present' ' + grep "name=.idoff." tmp +' + +test_expect_success 'offset input: from: present' ' + grep "name=.id2off." tmp +' + +test_expect_success 'apply button present' ' + grep "value=.apply." tmp +' + +test_expect_success 'offset: idoff steps back the to ref' ' + cgit_query "url=foo/diff&id=master&idoff=1" >tmp && + grep "a/file-4 b/file-4" tmp +' + +test_expect_success 'offset: id2off steps back the from ref' ' + cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp && + grep "a/file-5 b/file-5" tmp +' + +test_expect_success 'offset: filled input and hidden field' ' + cgit_query "url=foo/diff&id=master&idoff=1" >tmp && + grep "title=.N commits back from the selected ref. value=.1.>" tmp && + grep "type=.hidden. name=.idoff. value=.1./>" tmp +' + +test_expect_success 'offset: too large 404s with the stepped rev' ' + cgit_query "url=foo/diff&id=master&id2=master&id2off=9" >tmp && + grep "Bad object name: master~9" tmp +' + +test_expect_success 'empty id2 does not 404' ' + cgit_query "url=foo/diff&id=master&id2=" >tmp && + grep "diffstat" tmp && + ! grep "Bad object name" tmp +' + +test_expect_success 'file link carries the offsets' ' + cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp && + grep "/foo/diff/file-5?id2=master&id2off=2" tmp +' + +test_expect_success 'flip link carries the offsets' ' + cgit_query "url=foo/diff&id=master&id2=master&idoff=1&id2off=2" >tmp && + grep "/foo/diff/?id2=master&idoff=2&id2off=1" tmp +' + +test_expect_success 'from ref: follows the stepped to ref' ' + cgit_query "url=foo/diff&id=master&idoff=2" >tmp && + grep "name=.id2off. title=.N commits back from the selected ref. value=.3.>" tmp && + grep "name=.idoff. title=.N commits back from the selected ref. value=.2.>" tmp +' + +test_expect_success 'from ref: shows the given offset' ' + cgit_query "url=foo/diff&id=master&id2=master&id2off=2" >tmp && + grep "name=.id2off. title=.N commits back from the selected ref. value=.2.>" tmp +' + +test_expect_success 'from ref: empty when the to ref is the root' ' + root=$(git --git-dir="$PWD/repos/foo/.git" rev-list --max-parents=0 HEAD) && + cgit_query "url=foo/diff&id=$root" >tmp && + grep "name=.id2off. title=.N commits back from the selected ref.>" tmp +' + test_done |