Commit 0aa603de442d23ef3fede1b43b45b76d5ad17a47

Authored by Antonio Terceiro
1 parent 6f593b86
Exists in master and in 90 other branches 3.x, add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup, backup_not_prod, cdtc_configuration, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev-lappis, dev_env_minimal, disable_email_dev, docs, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, performance, prezento, r3, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_backup_emails, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, stable-devel, support_docs, syslog, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Refactor tests to not depend on /etc/hosts

test/bin/curl
... ... @@ -5,10 +5,15 @@ set -e
5 5 unset http_proxy
6 6 unset https_proxy
7 7  
  8 +. $(dirname $0)/../ip_helper.sh
  9 +
8 10 /usr/bin/curl \
9 11 --silent \
10 12 --noproxy '*' \
11 13 --fail \
12 14 --insecure \
13   - --header 'Host: softwarepublico.dev' \
  15 + --resolve softwarepublico.dev:80:$reverseproxy \
  16 + --resolve softwarepublico.dev:443:$reverseproxy \
  17 + --resolve listas.softwarepublico.dev:80:$reverseproxy \
  18 + --resolve listas.softwarepublico.dev:443:$reverseproxy \
14 19 "$@"
... ...
test/colab_test.sh
... ... @@ -13,15 +13,15 @@ test_colab_running() {
13 13 }
14 14  
15 15 test_colab_responds() {
16   - assertTrue 'colab responds' "run_on integration $curl http://localhost:8001"
  16 + assertTrue 'colab responds' "run_on integration curl --header 'Host: softwarepublico.dev' http://localhost:8001"
17 17 }
18 18  
19 19 test_nginx_responds() {
20   - assertTrue 'nginx reponds' "run_on integration $curl http://localhost"
  20 + assertTrue 'nginx reponds' "run_on integration curl --header 'Host: softwarepublico.dev' http://localhost"
21 21 }
22 22  
23 23 test_nginx_virtualhost() {
24   - local title="$(./test/bin/curl http://$integration/dashboard | grep '<title>' | sed -e 's/^\s*//')"
  24 + local title="$(curl --header 'Host: softwarepublico.dev' http://$integration/dashboard | grep '<title>' | sed -e 's/^\s*//')"
25 25 assertEquals "<title>Home - Colab</title>" "$title"
26 26 }
27 27  
... ...
test/ip_helper.sh 0 → 100644
... ... @@ -0,0 +1,10 @@
  1 +# make IP addresses avaliable at the environment so we can refer to hosts by
  2 +# name, e.g.
  3 +#
  4 +# curl http://$reverseproxy
  5 +# nmap -p 5423 $database
  6 +#
  7 +# Each node in the `peers:` entry in nodes.yaml will have its own variable
  8 +#
  9 +eval $(ruby -ryaml -e 'YAML.load_file("nodes.yaml").first[1]["peers"].each { |k,v| puts "#{k}=#{v}" }')
  10 +
... ...
test/reverse_proxy_test.sh
1 1 . $(dirname $0)/test_helper.sh
2 2  
3 3 test_redirect_http_to_https() {
4   - local redirect="$(./test/bin/curl --head http://$reverseproxy/ | sed -e '/Location:/ !d; s/\r//')"
  4 + local redirect="$(curl --header 'Host: softwarepublico.dev' --head http://$reverseproxy/ | sed -e '/Location:/ !d; s/\r//')"
5 5 assertEquals "Location: https://softwarepublico.dev/" "$redirect"
6 6 }
7 7  
8 8 test_reverse_proxy_to_colab() {
9   - local title="$(./test/bin/curl https://$reverseproxy/dashboard | grep '<title>' | sed -e 's/^\s*//')"
  9 + local title="$(curl --header 'Host: softwarepublico.dev' https://$reverseproxy/dashboard | grep '<title>' | sed -e 's/^\s*//')"
10 10 assertEquals "<title>Home - Colab</title>" "$title"
11 11 }
12 12  
... ...
test/test_helper.sh
  1 +export PATH="$(dirname $0)/bin:$PATH"
  2 +
1 3 run_on() {
2 4 local vm="$1"
3 5 shift
... ... @@ -19,15 +21,4 @@ wait_for() {
19 21 return 1
20 22 }
21 23  
22   -
23   -curl=/vagrant/test/bin/curl
24   -
25   -# make IP addresses avaliable at the environment so we can refer to hosts by
26   -# name, e.g.
27   -#
28   -# curl http://$reverseproxy
29   -# nmap -p 5423 $database
30   -#
31   -# Each node in the `peers:` entry in nodes.yaml will have its own variable
32   -#
33   -eval $(ruby -ryaml -e 'YAML.load_file("nodes.yaml").first[1]["peers"].each { |k,v| puts "#{k}=#{v}" }')
  24 +. $(dirname $0)/ip_helper.sh
... ...