summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/win_uri
diff options
context:
space:
mode:
authorJordan Borean <jborean93@gmail.com>2018-02-07 10:58:47 +0100
committerGitHub <noreply@github.com>2018-02-07 10:58:47 +0100
commita0178b79f100a110072dceaa57f71033d7327855 (patch)
treef97f237d6ffabc308725c6262b213ba3c9e5c68e /test/integration/targets/win_uri
parentFix jinja2>=2.9 nested include vars (#35099) (diff)
downloadansible-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/aliases1
-rw-r--r--test/integration/targets/win_uri/defaults/main.yml3
-rw-r--r--test/integration/targets/win_uri/tasks/main.yml14
-rw-r--r--test/integration/targets/win_uri/tasks/test.yml298
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'