diff options
author | Jordan Borean <jborean93@gmail.com> | 2018-02-07 10:58:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-07 10:58:47 +0100 |
commit | a0178b79f100a110072dceaa57f71033d7327855 (patch) | |
tree | f97f237d6ffabc308725c6262b213ba3c9e5c68e /test/integration/targets/win_uri | |
parent | Fix jinja2>=2.9 nested include vars (#35099) (diff) | |
download | ansible-a0178b79f100a110072dceaa57f71033d7327855.tar.xz ansible-a0178b79f100a110072dceaa57f71033d7327855.zip |
win_uri: fixes (#35487)
* win_uri: moved away from Invoke-WebRequest and fixed multiple issues
* fixes from review
Diffstat (limited to 'test/integration/targets/win_uri')
-rw-r--r-- | test/integration/targets/win_uri/aliases | 1 | ||||
-rw-r--r-- | test/integration/targets/win_uri/defaults/main.yml | 3 | ||||
-rw-r--r-- | test/integration/targets/win_uri/tasks/main.yml | 14 | ||||
-rw-r--r-- | test/integration/targets/win_uri/tasks/test.yml | 298 |
4 files changed, 316 insertions, 0 deletions
diff --git a/test/integration/targets/win_uri/aliases b/test/integration/targets/win_uri/aliases new file mode 100644 index 0000000000..2854047d09 --- /dev/null +++ b/test/integration/targets/win_uri/aliases @@ -0,0 +1 @@ +windows/ci/group4 diff --git a/test/integration/targets/win_uri/defaults/main.yml b/test/integration/targets/win_uri/defaults/main.yml new file mode 100644 index 0000000000..1a02bcaafe --- /dev/null +++ b/test/integration/targets/win_uri/defaults/main.yml @@ -0,0 +1,3 @@ +--- +test_uri_path: C:\ansible\win_uri +httpbin_host: httpbin.org diff --git a/test/integration/targets/win_uri/tasks/main.yml b/test/integration/targets/win_uri/tasks/main.yml new file mode 100644 index 0000000000..7105f5aa47 --- /dev/null +++ b/test/integration/targets/win_uri/tasks/main.yml @@ -0,0 +1,14 @@ +--- +- name: create test directory + win_file: + path: '{{test_uri_path}}' + state: directory + +- block: + - include_tasks: test.yml + + always: + - name: cleanup test directory + win_file: + path: '{{test_uri_path}}' + state: absent diff --git a/test/integration/targets/win_uri/tasks/test.yml b/test/integration/targets/win_uri/tasks/test.yml new file mode 100644 index 0000000000..551dfeeb4b --- /dev/null +++ b/test/integration/targets/win_uri/tasks/test.yml @@ -0,0 +1,298 @@ +--- +# get with mismatch https +# get with mismatch https and ignore validation + +- name: get request without return_content + win_uri: + url: http://{{httpbin_host}}/get + return_content: no + register: get_request_without_content + +- name: assert get request without return_content + assert: + that: + - not get_request_without_content.changed + - get_request_without_content.content is not defined + - get_request_without_content.json is not defined + - get_request_without_content.status_code == 200 + +- name: get request with xml content + win_uri: + url: http://{{httpbin_host}}/xml + return_content: yes + register: get_request_with_xml_content + +- name: assert get request with xml content + assert: + that: + - not get_request_with_xml_content.changed + - get_request_with_xml_content.content is defined + - get_request_with_xml_content.json is not defined + - get_request_with_xml_content.status_code == 200 + +- name: get request with binary content + win_uri: + url: http://{{httpbin_host}}/image/png + return_content: yes + register: get_request_with_binary_content + +- name: assert get request with binary content + assert: + that: + - not get_request_with_binary_content.changed + - get_request_with_binary_content.content is defined + - get_request_with_binary_content.json is not defined + - get_request_with_xml_content.status_code == 200 + +- name: get request with return_content and dest (check mode) + win_uri: + url: http://{{httpbin_host}}/get + return_content: yes + dest: '{{test_uri_path}}\get.json' + register: get_request_with_dest_check + check_mode: yes + +- name: get stat of downloaded file (check mode) + win_stat: + path: '{{test_uri_path}}\get.json' + register: get_request_with_dest_actual_check + +- name: assert get request with return_content and dest (check mode) + assert: + that: + - get_request_with_dest_check.changed + - get_request_with_dest_check.content is defined + - get_request_with_dest_check.json is defined + - get_request_with_dest_actual_check.stat.exists == False + +- name: get request with return_content and dest + win_uri: + url: http://{{httpbin_host}}/get + return_content: yes + dest: '{{test_uri_path}}\get.json' + register: get_request_with_dest + +- name: get stat of downloaded file + win_stat: + path: '{{test_uri_path}}\get.json' + checksum_algorithm: sha1 + get_checksum: yes + register: get_request_with_dest_actual + +- name: assert get request with return_content and dest + assert: + that: + - get_request_with_dest.changed + - get_request_with_dest.content is defined + - get_request_with_dest.json is defined + - get_request_with_dest_actual.stat.exists == True + - get_request_with_dest_actual.stat.checksum == get_request_with_dest.content|hash('sha1') + +- name: get request with return_content and dest (idempotent) + win_uri: + url: http://{{httpbin_host}}/get + return_content: yes + dest: '{{test_uri_path}}\get.json' + register: get_request_with_dest_again + +- name: assert get request with return_content and dest (idempotent) + assert: + that: + - not get_request_with_dest_again.changed + +- name: post request with return_content, dest and different content + win_uri: + url: http://{{httpbin_host}}/post + method: POST + content_type: application/json + body: '{"foo": "bar"}' + return_content: yes + dest: '{{test_uri_path}}\get.json' + register: post_request_with_different_content + +- name: get stat of downloaded file + win_stat: + path: '{{test_uri_path}}\get.json' + checksum_algorithm: sha1 + get_checksum: yes + register: post_request_with_different_content_actual + +- name: assert post request with return_content, dest and different content + assert: + that: + - post_request_with_different_content.changed + - post_request_with_different_content_actual.stat.exists == True + - post_request_with_different_content_actual.stat.checksum == post_request_with_different_content.content|hash('sha1') + +- name: test redirect without follow_redirects + win_uri: + url: http://{{httpbin_host}}/redirect/2 + follow_redirects: none + status_code: 302 + register: redirect_without_follow + +- name: assert redirect without follow_redirects + assert: + that: + - not redirect_without_follow.changed + - redirect_without_follow.location|default("") == '/relative-redirect/1' + - redirect_without_follow.status_code == 302 + +- name: test redirect with follow_redirects + win_uri: + url: http://{{httpbin_host}}/redirect/2 + follow_redirects: all + register: redirect_with_follow + +- name: assert redirect with follow_redirects + assert: + that: + - not redirect_with_follow.changed + - redirect_with_follow.location is not defined + - redirect_with_follow.status_code == 200 + - redirect_with_follow.response_uri == 'http://{{httpbin_host}}/get' + +- name: get request with redirect of TLS + win_uri: + url: https://{{httpbin_host}}/redirect/2 + follow_redirects: all + register: redirect_with_follow_tls + +- name: assert redirect with redirect of TLS + assert: + that: + - not redirect_with_follow_tls.changed + - redirect_with_follow_tls.location is not defined + - redirect_with_follow_tls.status_code == 200 + - redirect_with_follow_tls.response_uri == 'https://{{httpbin_host}}/get' + +- name: test basic auth + win_uri: + url: http://{{httpbin_host}}/basic-auth/user/passwd + user: user + password: passwd + register: basic_auth + +- name: assert test basic auth + assert: + that: + - not basic_auth.changed + - basic_auth.status_code == 200 + +- name: test basic auth with force auth + win_uri: + url: http://{{httpbin_host}}/hidden-basic-auth/user/passwd + user: user + password: passwd + force_basic_auth: yes + register: basic_auth_forced + +- name: assert test basic auth with forced auth + assert: + that: + - not basic_auth_forced.changed + - basic_auth_forced.status_code == 200 + +- name: test PUT + win_uri: + url: http://{{httpbin_host}}/put + method: PUT + body: foo=bar + return_content: yes + register: put_request + +- name: assert test PUT + assert: + that: + - not put_request.changed + - put_request.status_code == 200 + - put_request.json.data == 'foo=bar' + +- name: test OPTIONS + win_uri: + url: http://{{httpbin_host}}/ + method: OPTIONS + register: option_request + +- name: assert test OPTIONS + assert: + that: + - not option_request.changed + - option_request.status_code == 200 + - 'option_request.allow.split(", ")|sort == ["GET", "HEAD", "OPTIONS"]' + +# SNI Tests + +- name: validate status_codes are correct + win_uri: + url: http://{{httpbin_host}}/status/202 + status_code: + - 202 + method: POST + body: foo + register: status_code_check + +- name: assert validate status_codes are correct + assert: + that: + - not status_code_check.changed + - status_code_check.status_code == 202 + +- name: send JSON body with dict type + win_uri: + url: http://{{httpbin_host}}/post + method: POST + body: + foo: bar + list: + - 1 + - 2 + dict: + foo: bar + headers: + 'Content-Type': 'text/json' + return_content: yes + register: json_as_dict + +- name: set fact of expected json dict + set_fact: + json_as_dict_value: + foo: bar + list: + - 1 + - 2 + dict: + foo: bar + +- name: assert send JSON body with dict type + assert: + that: + - not json_as_dict.changed + - json_as_dict.json.json == json_as_dict_value + - json_as_dict.status_code == 200 + +- name: get request with custom headers + win_uri: + url: http://{{httpbin_host}}/get + headers: + Test-Header: hello + Another-Header: world + return_content: yes + register: get_custom_header + +- name: assert request with custom headers + assert: + that: + - not get_custom_header.changed + - get_custom_header.status_code == 200 + - get_custom_header.json.headers['Test-Header'] == 'hello' + - get_custom_header.json.headers['Another-Header'] == 'world' + +# client cert auth tests + +- name: get request with timeout + win_uri: + url: http://{{httpbin_host}}/delay/10 + timeout: 5 + register: get_with_timeout_fail + failed_when: '"The operation has timed out" not in get_with_timeout_fail.msg' |