Version 12 (modified by cotto, 11 years ago) |
---|
The GitHub Trac plugin doesn't come with any test suite, so the purpose of this page is to create a list of manual tests. This will give us some level of QA that the plugin conforms to a minimal level of quality in addition to serving as a list of features which have been successfully implemented.
Setup
<Insert setup instructions here. Postgres is preferable since that's what trac.parrot.org is running on.>
Test Results
test | 25c365 | 9fd2a1 |
clean install (enabled) | PASS | |
clean install (disabled) | PASS | |
incorrect revmap | PASS | |
tooltips | FAIL* | |
wiki syntax | PASS | |
changeset urls | PASS | |
github hook | FAIL | |
ambiguous commit id | FAIL |
* No long tooltips were displayed.
Test Cases
When running these test cases, use the below generic configuration options unless otherwise specified.
[github] apitoken = <your token here> #get this from https://github.com/account autofetch = 0 browser = http://github.com/parrot/parrot/commit/ closestatus = "closed" enable_revmap = 1 long_tooltips = 1 svn_revmap = revmap
clean install (enabled)
The plugin can be installed onto a db which doesn't have an existing svn_revmap table.
Procedure:
- Start with the generic config options.
- Create a revmap file by running git log --quiet --format='%H%n%s%n%b'>/path/to/trac/root/revmap from a clone of Parrot's git repo.
- Delete the svn_revmap db table, if it exists.
- Enable the plugin via Trac's config file (or via trac.ini).
- Verify that Trac shows the need for an upgrade.
- Upgrade Trac.
- Verify that Trac no longer needs to be upgraded.
clean install (disabled)
The plugin doesn't require the extra db table if revmaps are disabled.
Procedure:
- Start with the generic config options, but with enable_revmap = 0.
- Delete the svn_revmap db table, if it exists.
- Enable the plugin via Trac's config file (or via trac.ini).
- Verify that Trac does not need to be upgraded
incorrect revmap
The plugin will fail gracefully if the revmap is broken.
Procedure:
- Start with the generic config options.
- Delete the svn_revmap db table, if it exists.
- Enable the plugin via Trac's config file (or via trac.ini).
- Generate a revmap ( git log --quiet --format='%H%n%s%n%b' ), but delete instances of "git-svn-id:".
- Verify that an upgrade does not produce corrupt data. *. Note that throwing an exception is fine, as long as no bad data is added to the database.
tooltips
The plugin will properly display tooltips according to configuration.
Procedure:
- Start with the generic config options.
- Create or view a wiki page with valid svn revisions and git ids.
- Verify that the wiki syntax works and that tooltips are displayed.
- Change the "long_tooltips" config option to 0 and restart Trac.
- Verify that truncated tooltips are displayed.
wiki syntax
The plugin will properly detect and display svn and git links.
Procedure:
- Start with the generic config options.
- Create or view a wiki page with valid and invalid svn revisions and git ids.
- Verify that the valid links to git ids and svn revisions are displayed as links.
- Verify that the invalid links (e.g. !r0 and !r999999) are displayed unchanged.
changeset urls
The plugin will properly redirect changeset urls to GitHub.
Procedure:
- Start with the generic config options.
- Create or view a wiki page with valid svn revisions and git ids.
- Verify that the git ids redirect the appropriate commit at GitHub.
- Verify that the svn revisions redirect the appropriate git commit at GitHub. (look for the git-svn-id on the GitHub page)
github hook
The plugin responds correctly to GitHub's post-receive callback.
Procedure:
- Start with the generic config options.
- Get an example of the payload sent to a post-receive callback from http://www.postbin.org/12dx3gx . Save it to a file and change one of the commit id and git-svn-id values to something unique (but still valid).
- Use curl to post the data to the github hook url: curl --data-urlencode payload@your_file_here http://localhost:8080/trac/test/github/APITOKEN (use the API token from github.apitoken in trac.ini)
- Create a wiki page that refers to the newly-added commit, both as a git id and a svn revision.
- Verify that the link to the commit is displayed correctly, including its tooltip.
ambiguous commit id
The plugin does something reasonable when the user attempts to link to a commit using an ambiguous prefix.
Procedure:
- Start with the generic config options.
- Inject commits with an ambiguous commit id into the db (or find some).
- insert into svn_revmap (svn_rev, git_hash, commit_msg) VALUES (0, 'deadbeef100000000000000000000000000000000', 'ambiguous commit 1'), (0 , 'deadbeef200000000000000000000000000000000', 'ambiguous commit 2');
- Create or view a wiki page that refers to the above commits ambiguously.
- Verify that the page somehow indicates that the commit id is ambiguous, at the very least not rendering it as a link.
TODO
- browser url works