AgeCommit message (Collapse)AuthorLines
Check the stats page counts and orders authorsBryce Kwon-10/+60
No test asserted a count, and the fixture had a single author, so a page that stopped counting or sorting passed. The commit graph came in for a language breakdown that is gone. It stays because the walk still releases each commit as it goes, which a commit read from the graph has to survive.
Check the feed escapes what XML cannot carryBryce Kwon-0/+45
Every fixture subject was plain ASCII, so xmllint never met a byte the escaping exists for. git commit rewrites stray bytes as Latin-1 and the commit parser replaces any that are left, so the commit is written by hand and the description carries a stray byte to the feed's own check.
Name the followed path in the diffstat headerBryce Kwon-4/+30
With follow set the diff runs over the whole commit and show_filepair applies the path, so the header read (limited to '') whether or not a path was given.
Check a renamed file's diff leaves the rest outBryce Kwon-8/+15
A new path is diffed across the whole commit so the rename can be found, and a filter then keeps that path alone. The rename commit touched one file, so a diff that dropped the filter passed.
Check each side's line numbers in a later hunkBryce Kwon-6/+31
The test for a hunk that carries a length ran on foo's diff, whose only numbered side is +1 with no length, so it repeated the comma-less test. Every fixture hunk started at line 1, so a parser that always answered 1 passed. A line 0 never gets a link, so the absent 0 link could not show either way.
Test stray bytes in a tag's tagger and messageBryce Kwon-0/+21
Test the link from a tag to the tag it tagsBryce Kwon-0/+14
A robustness test asked for the inner tag's page by id, but nothing checked that the outer tag's page links there.
Test the tag page for a name that is no tagBryce Kwon-0/+6
Hold the tag tests to a working pageBryce Kwon-14/+16
The tag requests passed on any answer short of a crash, and the title test read a page the cache kept from an earlier test. The id pattern also matched an empty id, the date row was checked only for its opening tag, and the lightweight tag was never shown to lack a date row. Two tests read a page an earlier test wrote.
Test the download row on the commit pageBryce Kwon-0/+10
Test a note on the commit pageBryce Kwon-0/+8
Test subject links on the commit pageBryce Kwon-0/+7
Test a stray byte in a message with no encodingBryce Kwon-1/+9
The comment names a message with no encoding header as one case, but only a header naming an unknown charset was tested. Without a header the text is taken as UTF-8 and never converted, so only the clean-up stands between its stray bytes and the page.
Check the octopus merge draws no diffBryce Kwon-7/+19
The octopus took its first parent's tree, so its diff would have been empty whether drawn or not, and only the missing options were checked, with nothing to show the right page rendered. A merge of two parents, the other side of the limit, had no test.
Hold the commit tests to a working pageBryce Kwon-18/+14
The commit requests passed on any answer short of a crash, and the root commit checks read a page another test wrote. The tree row was found by its href alone, never by the tree id it names.
Test the blob page by object idBryce Kwon-1/+29
Only a robustness test touched the blob page, so a request by bare id, the binary type, the untrusted headers and the refusal of a malformed id had no check.
Test plain on a symlink and a submodule entryBryce Kwon-0/+24
Test the PDF exception to the unsafe plain typesBryce Kwon-0/+18
Test the untrusted headers on a plain fileBryce Kwon-0/+16
The content security policy had no test anywhere, and nosniff was only checked on a scanned repository.
Test a plain listing below the rootBryce Kwon-0/+23
Hold the plain tests to a working pageBryce Kwon-16/+12
The plain requests passed on any answer short of a crash, and the listing test never looked at where its links led. The types config was a copy of the shared one with its page cache still on, which cgitrc_copy exists to switch off.
Read the stylesheet rules by selectorBryce Kwon-7/+51
Both tests cut one block out of cgit.css by its opening line, so rewriting that selector list broke them while a later rule overriding the declaration passed. The helper gathers a property's declarations from every rule naming the selector, so the last one is the one a browser would apply. A rule under some other selector can still win, which only a browser shows.
Test the blame tooltip with and without addressesBryce Kwon-0/+13
Test a link target that climbs above the rootBryce Kwon-2/+6
Only an absolute target was tested, so ignoring a failed normalisation passed, and the mutation run left that change alive.
Follow the blame page's crumb and previous linksBryce Kwon-2/+9
Both fixes were for links that led to a 404, and the tests read the href without asking for the page it names.
Test what blame says for paths it cannot blameBryce Kwon-0/+12
Test that blame is refused while disabledBryce Kwon-0/+6
Test the blame link in the file view's headerBryce Kwon-0/+8
Prove the rows the blame link check looks pastBryce Kwon-6/+10
The checks that blob.bin, big.bin and large.txt get no blame link never showed those rows were in the listing, so a listing that dropped them passed.
Hold the tree tests to a working pageBryce Kwon-36/+50
The tree requests passed on any answer short of a crash. Several tests read a page or a row an earlier test wrote, so run alone they passed or failed by accident, and two leant on a repository from the test before without saying so. The file-50 check also matched its href, and the blame check skipped the form feed and NEL its title covers.
Check the tag message line by lineBryce Kwon-2/+3
The check removed every newline before matching, so a body that kept the blank line after the subject read the same, and the page would have shown that line under white-space pre-wrap.
Check the commit page's parent rowBryce Kwon-1/+4
The pattern also matched the commit row's link to itself, so the test passed with no parent row at all.
Pin the listing's blame link for a late NULBryce Kwon-0/+27
The listing judges binary by the first 8000 bytes, as git does, while the blame page and the file view look for a NUL anywhere, since one past that window would end a Lua filter's output early. The listing keeps the cheap sniff, because the whole-blob check would inflate every blob it names, so a file whose NUL lies past the window gets a blame link that ends on "Blob is binary". The test pins that trade, so a change to either side has to face it.
Test a long subject in the expanded logBryce Kwon-0/+13
Test the lowest message limit that cutsBryce Kwon-0/+10
Test the log search by case and by committerBryce Kwon-0/+19
Test the log orders commit-sort selectsBryce Kwon-0/+41
commit-sort had no test anywhere. The history here is one where the plain walk, date order and topo order all differ, which the test checks first so a fixture that stopped telling them apart would fail rather than pass.
Test the file and line counts in the logBryce Kwon-0/+17
The shared config turns both columns on, but no test read a count, so a wrong or swapped one passed.
Test the branch and tag labels in the logBryce Kwon-0/+15
No test anywhere drew a label, so the peel that tells an annotated tag from a lightweight one had no check.
Test the switcher on a page pinned to a commitBryce Kwon-0/+12
Hold the log tests to a working pageBryce Kwon-36/+54
The log requests passed on any answer short of a crash. The search checks after the first read a page an earlier test wrote, so run alone they passed with no page at all, and three tests shared one title. The switcher checks found the right option selected but not that it was the only one, and a failed check left its tag behind for the tests after it. The broken walk's log was written and never read.
Test the author and age of a lightweight tag rowBryce Kwon-0/+10
Test clone urls made from clone-prefixBryce Kwon-0/+9
Test remote branches shown and hiddenBryce Kwon-0/+27
enable-remote-branches had no test anywhere, so the branch list, the switcher or the log label could each stop honouring it unnoticed.
Check the tag cells hold what their heading namesBryce Kwon-1/+4
Only the heading was checked, so a heading and cells that disagreed about snapshots passed.
Hold the summary tests to a working pageBryce Kwon-24/+44
The summary requests passed on any answer short of a crash, and the checks for no tags and no commit 45 read a page another test wrote. The log checks also matched the branch row, which shows the newest subject too. Two checks under a title about the clone rows matched the vcs-git links in the head instead, and the dots in the [...] count matched any three characters.
Test the index sections and their orderingBryce Kwon-0/+65
Nothing tested section, section-sort or repository-sort, nor the heading's colspan, which BASE_COLUMNS has to keep in step with the headings by hand.
Copy the shared config for the cut descriptionBryce Kwon-3/+2
It repeated the sed that cgitrc_copy runs, only to add a repository after the copy.
Test a description limit of zero or lessBryce Kwon-0/+9
Say the message and description limits count bytesBryce Kwon-7/+7
The code has always measured both in bytes, and the tests pin that, so the entries change rather than the behaviour. A limit of 10 shows three of a nine character description in Japanese.