aboutsummaryrefslogtreecommitdiff
path: root/t
Commit message (Collapse)AuthorAge
* po: Always filter .po filesSimon McVittie2019-02-24
| | | | | | | | | | | | | | | | | | | | The input to filter hooks is meant to be the content of a source file on disk. If we only filter once per (page, destpage) pair, and a page is inlined into the same destpage more than once, then the second occurrence will render as the result of htmlizing .po source as if it was Markdown (or whatever the type of the corresponding master page is), which is never going to end well. The alreadyfiltered mechanism was added in commit 1e874b3f to avoid preprocessing loops, but I'm not sure where it could lead to a loop: filter hooks are only called from IkiWiki::filter, which is only called on page content from disk or on proposed content being previewed. According to <https://bugs.debian.org/911356#41>, deleting the alreadyfiltered mechanism resolves the problem, as well as simplifying the code. Closes: #911356 Tested-by: intrigeri
* comments.t: Assert that comments get permalink metadataSimon McVittie2019-02-03
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* comments.t: Exercise post-2009 comment namingSimon McVittie2019-02-03
| | | | | | Since commit 6af6c89d, comments are in files whose names contain a hash. Signed-off-by: Simon McVittie <smcv@debian.org>
* git-cgi.t: Exercise an alphanumeric, but non-ASCII, root pageSimon McVittie2019-02-03
| | | | | | | | | | | | | My previous attempt to reproduce this bug used a non-alphanumeric ASCII character. This is not currently considered to be a valid value for rootpage, although for a "do what I mean" approach, perhaps we should accept it and pass it through titlepage() or linkpage(). Using Chinese characters (which are considered to match [[:alnum:]] even though the Chinese script is not, strictly speaking, an alphabet), as in the original bug report, reproduces the bug. Signed-off-by: Simon McVittie <smcv@debian.org>
* t: Exercise Chinese and Cyrillic page titlesSimon McVittie2019-02-03
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* trail: Allow unescaped punctuation in pagenamesSimon McVittie2019-02-03
| | | | | | | By processing the pagenames through linkpage, we let users specify page names that contain non-alphanumerics in a more natural way. Signed-off-by: Simon McVittie <smcv@debian.org>
* trail.t: Exercise numeric escapes in pagenames parameterSimon McVittie2019-02-03
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* linkpage.t: Assert we can link to pages with literal underscoreSimon McVittie2019-02-03
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* t: Consistently remove temp directory before testing, not afterSimon McVittie2019-02-03
| | | | | | When a test fails, it's useful to be able to inspect the output. Signed-off-by: Simon McVittie <smcv@debian.org>
* pagetitle.t, linkpage.t, titlepage.t: Exercise Unicode moreSimon McVittie2019-02-03
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* Add a simple test for non-ASCII in tablesSimon McVittie2019-01-31
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* git-cgi.t: Add a failing test for a blog with a non-ASCII rootpageSimon McVittie2019-01-31
| | | | | | | | This is one of several possible bug reports on "doc/bugs/About %2F problem" (I'm not sure what the actual bug being reported is). Signed-off-by: Simon McVittie <smcv@debian.org>
* git-cgi.t: Add a simple test for blog posts from a root pageSimon McVittie2019-01-31
| | | | | | This is the working base case for "doc/bugs/About %2F problem". Signed-off-by: Simon McVittie <smcv@debian.org>
* git-cgi.t: Print query string as a TAP diagnosticSimon McVittie2019-01-31
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* po: Improve test coverageSimon McVittie2018-12-01
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* po: Add failing test for Debian bug #911356Simon McVittie2018-12-01
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* meta test: Assert that malformed dates are rejectedSimon McVittie2018-03-21
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* meta test: Use syntactically valid datesSimon McVittie2018-03-21
| | | | | | I'm about to make invalid dates like 12345 be an error. Signed-off-by: Simon McVittie <smcv@debian.org>
* not-truncated.t: Work correctly as an installed-testSimon McVittie2018-03-09
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* Add a test asserting that no plugin is an empty fileSimon McVittie2018-03-09
| | | | | | | | | I'm still not completely sure how it happened, and I can't reproduce it myself, but in the Debian build of ikiwiki 3.20180105, wikitext.pm ended up empty. The build fixes in commits 3aacac3b, efcbeaa0, b32480f0 hopefully fixed this. Signed-off-by: Simon McVittie <smcv@debian.org>
* mdwn: Automatically detect which libdiscount flags to useSimon McVittie2018-03-08
| | | | | | | | | | Unconditionally passing arbitrary numbers as flags turns out to be a bad idea, because some of the "unused" values have historically had side-effects internal to libdiscount. Detect whether the known flags work by rendering short Markdown snippets the first time we htmlize, checking whether each known flag is both necessary and sufficient. Signed-off-by: Simon McVittie <smcv@debian.org>
* rst test: Probe for docutils Python 3 module, not Python 2http://thm.id.fedoraproject.org/2018-03-04
|
* img test: Exercise a format that is uncommon on the web (BMP)Simon McVittie2018-02-28
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* img test: Don't rely on using an empty ImageMagick coder nameSimon McVittie2018-02-28
| | | | | | | | | This used to work, but has been interpreted as a literal part of the filename since ImageMagick 6.9.8-3. In newer versions, there does not seem to be any way to indicate that a filename containing ':' is to be taken literally without first knowing the decoder to use. Signed-off-by: Simon McVittie <smcv@debian.org>
* t/wellformed: Rebuild the docwiki, not everythingSimon McVittie2018-01-29
|
* t: Accept optional file:// prefix on W3m-controlSimon McVittie2018-01-29
|
* Don't send relative redirect URLs when behind a reverse proxySimon McVittie2018-01-08
|
* t/relativity.t: Add tests for IkiWiki::redirect behaviourSimon McVittie2018-01-08
| | | | This reproduces [[bugs/cgi_redirecting_to_non-https_URL]].
* Remove openid provider icons from login selectorJoey Hess2018-01-05
| | | | | | | | | Remove openid provider icons from login selector, since openid providers are increasingly not working. Verisign retired theirs, and aol and yahoo/flickr are not commonly used for openid. Any users who still clicked those icons to login will need to instead enter their openid url. This commit was sponsored by andrea rota.
* t/git-untrusted.t: Fix redundant declarationSimon McVittie2017-10-01
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* t/git-untrusted.t: New test case for untrusted pushesSimon McVittie2017-10-01
| | | | | | | | | This also exercises the typical centralized git repository workflow, where changes flow from a non-bare clone (for example on a laptop) to a centralized bare repository, then from the centralized bare repository to a non-bare clone that is ikiwiki's srcdir. Signed-off-by: Simon McVittie <smcv@debian.org>
* t/img.t: test determinism of PNG resizing.intrigeri2017-09-01
|
* t/img.t: Give better diagnostics if we can't load an imageSimon McVittie2017-06-22
|
* color, toc: Fix `make test`Simon McVittie2017-05-16
|
* color: Use markup for the preserved CSS, not character dataSimon McVittie2017-05-16
| | | | | | This still smuggles it past the sanitize step, but avoids having other plugins that want to capture text content without markup (notably toc) see the CSS as if it was text content.
* color: Add a unit testSimon McVittie2017-05-16
|
* Add a simple unit test for [[!toc]]Simon McVittie2017-05-16
|
* Add a test-case for Markdown optionsSimon McVittie2017-05-16
|
* t/git-cgi.t: Wait 1 second before doing a revert that should succeedSimon McVittie2017-05-14
| | | | | | | | | | | This hopefully fixes a race condition in which the test failed around 6% of the time. If we don't wait, the mtime (which is rounded down to 1 second precision in the APIs we use) will not necessarily change, so the update will not necessarily cause the page to be refreshed. Bug-Debian: https://bugs.debian.org/862494
* t/passwordauth.t: new automated test for passwordauthSimon McVittie2017-01-11
| | | | | | In particular this includes an exploit for OVE-20170111-0001. (cherry picked from commit fbe207212b1f4a395dc297fb274ef07afd7d68f3)
* git-cgi.t: when committing directly, make sure we have a valid authorSimon McVittie2017-01-09
| | | | | In the environment used on ci.debian.net, we have neither a name nor an email address.
* t/git-cgi.t: fix race conditionSimon McVittie2017-01-09
| | | | | We need the changes to take place at least 1 second after the first rebuild, so that the changed files are seen to have changed.
* git: Add test coverage for reverting attachmentsSimon McVittie2016-12-28
|
* Add automated test for using the CGI with git, including CVE-2016-10026Simon McVittie2016-12-28
|
* git_revert test: reinstate ikiwiki.setup, and make it work uninstalledSimon McVittie2016-12-28
| | | | | | | | | | | | | | Previously it was relying on running with an installed ikiwiki and being able to copy in recentchanges.mdwn and wikiicons/ from the underlay in /usr. The underlay in ./underlays/basewiki can't be used (yet) because ikiwiki doesn't allow following symlinks, even from underlays. I'd like to make ikiwiki follow symlinks whose destinations can be verified to be safe (for example making it willing to expose /usr/share/javascript to the web, but not /etc/passwd), at least from underlays, but this is security-sensitive so I'm not going to rush into it.
* Add a manual test for reverting git commitsSimon McVittie2016-12-19
| | | | Signed-off-by: Simon McVittie <smcv@debian.org>
* Exclude working directory from library path (CVE-2016-1238)Simon McVittie2016-07-28
| | | | | | | | | | | | | | | | | | | | | Current Perl versions put '.' at the end of the library search path @INC, although this will be fixed in a future Perl release. This means that when software loads an optionally-present module, it will be looked for in the current working directory before giving up. An attacker could use this to execute arbitrary Perl code from ikiwiki's current working directory. Removing '.' from the library search path in Perl is the correct fix for this vulnerability, but is not trivial to do due to backwards-compatibility concerns. Mitigate this (even if ikiwiki is run with a vulnerable Perl version) by explicitly removing '.' from the search path, and instead looking for ikiwiki's own modules relative to the absolute path of the executable when run from the source directory. In tests that specifically want to use the current working directory, use "-I".getcwd instead of "-I." so we use its absolute path, which is immune to the removal of ".".
* Wrapper: allocate new environment dynamicallySimon McVittie2016-05-11
| | | | | | | | | | | | | | Otherwise, if third-party plugins extend newenviron by more than 3 entries, we could overflow the array. It seems unlikely that any third-party plugin manipulates newenviron in practice, so this is mostly theoretical. Just in case, I have deliberately avoided using "i" as the variable name, so that any third-party plugin that was manipulating newenviron directly will now result in the wrapper failing to compile. I have not assumed that realloc(NULL, ...) works as an equivalent of malloc(...), in case there are still operating systems where that doesn't work.
* img test: exercise upper-case extensions for image filesSimon McVittie2016-05-09
|
* Fix spelling of "ratio" in test.Amitai Schlair2016-05-08
|