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

@@ -5,10 +5,15 @@ set -e @@ -5,10 +5,15 @@ set -e
5 unset http_proxy 5 unset http_proxy
6 unset https_proxy 6 unset https_proxy
7 7
  8 +. $(dirname $0)/../ip_helper.sh
  9 +
8 /usr/bin/curl \ 10 /usr/bin/curl \
9 --silent \ 11 --silent \
10 --noproxy '*' \ 12 --noproxy '*' \
11 --fail \ 13 --fail \
12 --insecure \ 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,15 +13,15 @@ test_colab_running() {
13 } 13 }
14 14
15 test_colab_responds() { 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 test_nginx_responds() { 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 test_nginx_virtualhost() { 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 assertEquals "<title>Home - Colab</title>" "$title" 25 assertEquals "<title>Home - Colab</title>" "$title"
26 } 26 }
27 27
test/ip_helper.sh 0 → 100644
@@ -0,0 +1,10 @@ @@ -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 . $(dirname $0)/test_helper.sh 1 . $(dirname $0)/test_helper.sh
2 2
3 test_redirect_http_to_https() { 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 assertEquals "Location: https://softwarepublico.dev/" "$redirect" 5 assertEquals "Location: https://softwarepublico.dev/" "$redirect"
6 } 6 }
7 7
8 test_reverse_proxy_to_colab() { 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 assertEquals "<title>Home - Colab</title>" "$title" 10 assertEquals "<title>Home - Colab</title>" "$title"
11 } 11 }
12 12
test/test_helper.sh
  1 +export PATH="$(dirname $0)/bin:$PATH"
  2 +
1 run_on() { 3 run_on() {
2 local vm="$1" 4 local vm="$1"
3 shift 5 shift
@@ -19,15 +21,4 @@ wait_for() { @@ -19,15 +21,4 @@ wait_for() {
19 return 1 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