You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
forgejo/integrations
zeripath 44371b96f5 Ensure valid git author names passed in signatures (#5774)
* Ensure valid git author names passed in signatures

Fix #5772 - Git author names are not allowed to include `\n` `<` or `>` and
must not be empty. Ensure that the name passed in a signature is valid.

* Account for pathologically named external users

LDAP and the like usernames are not checked in the same way that users who signup are.
Therefore just ensure that user names are also git safe and if totally pathological -
Set them to "user-$UID"

* Add Tests and adjust test users

Make our testcases a little more pathological so that we be sure that integration
tests have a chance to spot these cases.

Signed-off-by: Andrew Thornton <art27@cantab.net>
6 years ago
..
gitea-repositories-meta Fix redirect with non-ascii branch names (#4764) (#4810) 6 years ago
README.md CN translation of README (#5050) 6 years ago
README_ZH.md CN translation of README (#5050) 6 years ago
api_admin_test.go Fix #5226 by adding CSRF checking to api reqToken and add CSRF to the POST header for deadline (#5250) 6 years ago
api_branch_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_comment_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_fork_test.go Fix repo API bug (#2133) 7 years ago
api_gpg_keys_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_issue_label_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_issue_test.go feat(repo): support search repository by topic name (#4505) 6 years ago
api_keys_test.go Keys API changes (#4960) 6 years ago
api_org_test.go add api for user to create org (#5268) 6 years ago
api_pull_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_releases_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_repo_git_ref_test.go Implement git refs API for listing references (branches, tags and other) (#5354) 6 years ago
api_repo_lfs_locks_test.go Fix SSH auth lfs locks (#3152) 7 years ago
api_repo_raw_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_repo_test.go Restrict permission check on repositories and fix some problems (#5314) 6 years ago
api_team_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
api_token_test.go Add ability to delete a token (#4235) 6 years ago
api_user_heatmap_test.go User action heatmap (#5131) 6 years ago
api_user_orgs_test.go Ensure valid git author names passed in signatures (#5774) 6 years ago
auth_ldap_test.go Fix issue where ecdsa and other key types are not synced from LDAP (#5092) (#5094) 6 years ago
benchmarks_test.go Fix type mismatch of format string (#5574) 6 years ago
branches_test.go Use httptest in integration tests (#3080) 7 years ago
change_default_branch_test.go Less verbose integration tests (#2123) 7 years ago
delete_user_test.go Refactor User Settings (#3900) 6 years ago
download_test.go Add raw blob endpoint to get objects by SHA ID (#5334) 6 years ago
editor_test.go Improve English grammar and consistency. (#3614) 6 years ago
empty_repo_test.go Refactor repo.isBare to repo.isEmpty #5629 (#5714) 6 years ago
explore_repos_test.go fix template error on explore repos (#2319) 7 years ago
git_test.go Fix #5226 by adding CSRF checking to api reqToken and add CSRF to the POST header for deadline (#5250) 6 years ago
html_helper.go Use httptest in integration tests (#3080) 7 years ago
integration_test.go fix lfs version check warning log when using ssh protocol (#5501) 6 years ago
internal_test.go Use httptest in integration tests (#3080) 7 years ago
issue_test.go Unit tests for routers/repo/issue_label (#3198) 7 years ago
lfs_getobject_test.go Pooled and buffered gzip implementation (#5722) 6 years ago
links_test.go Refactor User Settings (#3900) 6 years ago
mssql.ini.tmpl Added test environment for mssql (#4282) 6 years ago
mysql.ini.tmpl Add integrations tests from git cli (#3377) 7 years ago
nonascii_branches_test.go Fix redirect with non-ascii branch names (#4764) (#4810) 6 years ago
pgsql.ini.tmpl Add integrations tests from git cli (#3377) 7 years ago
pull_compare_test.go Responsive view (#2750) 7 years ago
pull_create_test.go Fix escaping changed title in comments (#3530) 6 years ago
pull_merge_test.go Add rebase with merge commit merge style (#3844) (#4052) 6 years ago
release_test.go Unit tests for routers/repo/issue_label (#3198) 7 years ago
repo_activity_test.go Fix escaping changed title in comments (#3530) 6 years ago
repo_branch_test.go Add more bench (#3161) 7 years ago
repo_commits_test.go Enforce token on api routes [fixed critical security issue #4357] (#4840) 6 years ago
repo_fork_test.go Use httptest in integration tests (#3080) 7 years ago
repo_migrate_test.go Add more bench (#3161) 7 years ago
repo_search_test.go Code/repo search (#2582) 7 years ago
repo_test.go Symlink icons (#1416) (#3826) 6 years ago
setting_test.go fix not respecting landing page setting (#4209) 6 years ago
signin_test.go Add integration tests for signin (#2363) 7 years ago
signout_test.go Add integration test for logging out (#2892) 7 years ago
signup_test.go Less verbose integration tests (#2123) 7 years ago
sqlite.ini Pooled and buffered gzip implementation (#5722) 6 years ago
timetracking_test.go Unit tests for routers/repo/issue_label (#3198) 7 years ago
user_test.go Ensure valid git author names passed in signatures (#5774) 6 years ago
version_test.go Update hard-coded version to 1.3.0-dev (#2390) 7 years ago
xss_test.go Added user language setting (#3875) 6 years ago

README.md

Integrations tests

Integration tests can be run with make commands for the appropriate backends, namely:

make test-mysql
make test-pgsql
make test-sqlite

Make sure to perform a clean build before running tests:

make clean build

Run all tests via local drone

drone exec --local --build-event "pull_request"

Run sqlite integrations tests

Start tests

make test-sqlite

Run mysql integrations tests

Setup a mysql database inside docker

docker run -e "MYSQL_DATABASE=test" -e "MYSQL_ALLOW_EMPTY_PASSWORD=yes" --rm --name mysql mysql:5.7 #(just ctrl-c to stop db and clean the container) 

Start tests based on the database container

TEST_MYSQL_HOST="$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql):3306" TEST_MYSQL_DBNAME=test TEST_MYSQL_USERNAME=root TEST_MYSQL_PASSWORD='' make test-mysql

Run pgsql integrations tests

Setup a pgsql database inside docker

docker run -e "POSTGRES_DB=test" --rm --name pgsql postgres:9.5 #(just ctrl-c to stop db and clean the container) 

Start tests based on the database container

TEST_PGSQL_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' pgsql) TEST_PGSQL_DBNAME=test TEST_PGSQL_USERNAME=postgres TEST_PGSQL_PASSWORD=postgres make test-pgsql

Running individual tests

Example command to run GPG test with sqlite backend:

go test -c code.gitea.io/gitea/integrations \
  -o integrations.sqlite.test -tags 'sqlite' &&
  GITEA_ROOT="$GOPATH/src/code.gitea.io/gitea" \
  GITEA_CONF=integrations/sqlite.ini ./integrations.sqlite.test \
  -test.v -test.run GPG