367 lines
12 KiB
YAML
367 lines
12 KiB
YAML
# Test code for the file module.
|
|
# (c) 2017, Dag Wieers <dag@wieers.com>
|
|
|
|
# This file is part of Ansible
|
|
#
|
|
# Ansible is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Ansible is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
- name: get current user profile location
|
|
raw: $env:USERPROFILE
|
|
check_mode: no
|
|
register: profile_result
|
|
|
|
- set_fact:
|
|
profile_dir: '{{ profile_result.stdout_lines[0] }}'
|
|
|
|
- name: Add Ansible website link on the desktop
|
|
win_shortcut:
|
|
src: https://ansible.com/
|
|
dest: '%UserProfile%\Desktop\Ansible website.url'
|
|
state: present
|
|
register: ansible_website_link_add
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- ansible_website_link_add.changed == true
|
|
- ansible_website_link_add.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
- ansible_website_link_add.src == 'https://ansible.com/'
|
|
|
|
- name: Add Ansible website link on the desktop again
|
|
win_shortcut:
|
|
src: https://ansible.com/
|
|
dest: '%UserProfile%\Desktop\Ansible website.url'
|
|
state: present
|
|
register: ansible_website_link_add_again
|
|
|
|
- name: Check there was no change (normal mode)
|
|
assert:
|
|
that:
|
|
- ansible_website_link_add_again.changed == false
|
|
- ansible_website_link_add_again.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
- ansible_website_link_add_again.src == 'https://ansible.com/'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was a change (check-mode)
|
|
assert:
|
|
that:
|
|
- ansible_website_link_add_again.changed == true
|
|
- ansible_website_link_add_again.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
- ansible_website_link_add_again.src == 'https://ansible.com/'
|
|
when: in_check_mode
|
|
|
|
- name: Remove link
|
|
win_shortcut:
|
|
dest: '%UserProfile%\Desktop\Ansible website.url'
|
|
state: absent
|
|
register: ansible_website_link_remove
|
|
|
|
- name: Check there was a change (normal mode)
|
|
assert:
|
|
that:
|
|
- ansible_website_link_remove.changed == true
|
|
- ansible_website_link_remove.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was no change (check-mode)
|
|
assert:
|
|
that:
|
|
- ansible_website_link_remove.changed == false
|
|
- ansible_website_link_remove.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
when: in_check_mode
|
|
|
|
- name: Remove link again
|
|
win_shortcut:
|
|
dest: '%UserProfile%\Desktop\Ansible website.url'
|
|
state: absent
|
|
register: ansible_website_link_remove_again
|
|
|
|
- name: Check there was no change
|
|
assert:
|
|
that:
|
|
- ansible_website_link_remove_again.changed == false
|
|
- ansible_website_link_remove_again.dest == profile_dir + '\Desktop\Ansible website.url'
|
|
|
|
- name: Add a regedit shortcut on the desktop
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: present
|
|
register: regedit_shortcut_add
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add.changed == true
|
|
- regedit_shortcut_add.description == 'Registry Editor'
|
|
- regedit_shortcut_add.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add.src == 'C:\\Windows\\regedit.exe'
|
|
|
|
- name: Add a regedit shortcut on the desktop again
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: present
|
|
register: regedit_shortcut_add_again
|
|
|
|
- name: Check there was no change (normal mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add_again.changed == false
|
|
- regedit_shortcut_add_again.description == 'Registry Editor'
|
|
- regedit_shortcut_add_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add_again.src == 'C:\\Windows\\regedit.exe'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was a change (check-mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add_again.changed == true
|
|
- regedit_shortcut_add_again.description == 'Registry Editor'
|
|
- regedit_shortcut_add_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add_again.src == 'C:\\Windows\\regedit.exe'
|
|
when: in_check_mode
|
|
|
|
- name: Update a regedit shortcut on the desktop
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: C:\BogusPath\regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: present
|
|
register: regedit_shortcut_update
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_update.changed == true
|
|
- regedit_shortcut_update.description == 'Registry Editor'
|
|
- regedit_shortcut_update.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_update.src == 'C:\\BogusPath\\regedit.exe'
|
|
|
|
- name: Update a regedit shortcut on the desktop again
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: C:\BogusPath\regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: present
|
|
register: regedit_shortcut_update_again
|
|
|
|
- name: Check there was no change (normal mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_update_again.changed == false
|
|
- regedit_shortcut_update_again.description == 'Registry Editor'
|
|
- regedit_shortcut_update_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_update_again.src == 'C:\\BogusPath\\regedit.exe'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was a change (check-mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_update_again.changed == true
|
|
- regedit_shortcut_update_again.description == 'Registry Editor'
|
|
- regedit_shortcut_update_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_update_again.src == 'C:\\BogusPath\\regedit.exe'
|
|
when: in_check_mode
|
|
|
|
- name: Add an (explicit) icon
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: C:\Windows\regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
icon: 'C:\Windows\regedit.exe,0'
|
|
state: present
|
|
register: regedit_shortcut_add_icon
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add_icon.changed == true
|
|
- regedit_shortcut_add_icon.description == 'Registry Editor'
|
|
- regedit_shortcut_add_icon.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add_icon.icon == 'C:\\Windows\\regedit.exe,0'
|
|
- regedit_shortcut_add_icon.src == 'C:\\Windows\\regedit.exe'
|
|
|
|
- name: Add an (explicit) icon again
|
|
win_shortcut:
|
|
description: "Registry Editor"
|
|
src: C:\Windows\regedit.exe
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
icon: 'C:\Windows\regedit.exe,0'
|
|
state: present
|
|
register: regedit_shortcut_add_icon_again
|
|
|
|
- name: Check there was no change (normal mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add_icon_again.changed == false
|
|
- regedit_shortcut_add_icon_again.description == 'Registry Editor'
|
|
- regedit_shortcut_add_icon_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add_icon_again.icon == 'C:\\Windows\\regedit.exe,0'
|
|
- regedit_shortcut_add_icon_again.src == 'C:\\Windows\\regedit.exe'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was a change (check-mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_add_icon_again.changed == true
|
|
- regedit_shortcut_add_icon_again.description == 'Registry Editor'
|
|
- regedit_shortcut_add_icon_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
- regedit_shortcut_add_icon_again.icon == 'C:\\Windows\\regedit.exe,0'
|
|
- regedit_shortcut_add_icon_again.src == 'C:\\Windows\\regedit.exe'
|
|
when: in_check_mode
|
|
|
|
- name: Remove shortcut
|
|
win_shortcut:
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: absent
|
|
register: regedit_shortcut_remove
|
|
|
|
- name: Check there was a change (normal mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_remove.changed == true
|
|
- regedit_shortcut_remove.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was no change (check-mode)
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_remove.changed == false
|
|
- regedit_shortcut_remove.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
when: in_check_mode
|
|
|
|
- name: Remove shortcut again
|
|
win_shortcut:
|
|
dest: '%Public%\Desktop\Registry Editor.lnk'
|
|
state: absent
|
|
register: regedit_shortcut_remove_again
|
|
|
|
- name: Check there was no change
|
|
assert:
|
|
that:
|
|
- regedit_shortcut_remove_again.changed == false
|
|
- regedit_shortcut_remove_again.dest == 'C:\\Users\\Public\\Desktop\\Registry Editor.lnk'
|
|
|
|
- name: Create shortcut to shell path
|
|
win_shortcut:
|
|
dest: '%Public%\bin.lnk'
|
|
src: shell:RecycleBinFolder
|
|
state: present
|
|
register: shell_add
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- shell_add is changed
|
|
- shell_add.dest == 'C:\\Users\\Public\\bin.lnk'
|
|
- shell_add.src == 'shell:RecycleBinFolder'
|
|
|
|
- name: Create shortcut to shell path again
|
|
win_shortcut:
|
|
dest: '%Public%\bin.lnk'
|
|
src: shell:RecycleBinFolder
|
|
state: present
|
|
register: shell_add_again
|
|
|
|
- name: Check there was no change (normal mode)
|
|
assert:
|
|
that:
|
|
- not shell_add_again is changed
|
|
- shell_add_again.src == 'shell:RecycleBinFolder'
|
|
when: not in_check_mode
|
|
|
|
- name: Check there was a change (check-mode)
|
|
assert:
|
|
that:
|
|
- shell_add_again is changed
|
|
when: in_check_mode
|
|
|
|
- name: Change shortcut to another shell path
|
|
win_shortcut:
|
|
dest: '%Public%\bin.lnk'
|
|
src: shell:Start Menu
|
|
state: present
|
|
register: shell_change
|
|
|
|
- name: Check there was a change
|
|
assert:
|
|
that:
|
|
- shell_change is changed
|
|
- shell_change.src == 'shell:Start Menu'
|
|
|
|
- name: Create shortcut to an executable without run as admin
|
|
win_shortcut:
|
|
dest: '%Public%\Desktop\cmd.lnk'
|
|
src: '%SystemRoot%\System32\cmd.exe'
|
|
state: present
|
|
register: shell_exe_limited
|
|
|
|
- name: Get run as admin flag state
|
|
win_shell: |
|
|
$shortcut = "$env:Public\Desktop\cmd.lnk"
|
|
$flags = [System.BitConverter]::ToUInt32([System.IO.FIle]::ReadAllBytes($shortcut), 20)
|
|
($flags -band 0x00002000) -eq 0x00002000
|
|
register: shell_exe_limited_actual
|
|
|
|
- name: Check that run as admin flag wasn't set (normal mode)
|
|
assert:
|
|
that:
|
|
- shell_exe_limited is changed
|
|
- not shell_exe_limited_actual.stdout_lines[0]|bool
|
|
when: not in_check_mode
|
|
|
|
- name: Check that exe shortcut results in a change (check-mode)
|
|
assert:
|
|
that:
|
|
- shell_exe_limited is changed
|
|
when: in_check_mode
|
|
|
|
- name: Set shortcut to run as admin
|
|
win_shortcut:
|
|
dest: '%Public%\Desktop\cmd.lnk'
|
|
src: '%SystemRoot%\System32\cmd.exe'
|
|
run_as_admin: True
|
|
state: present
|
|
register: shell_exe_admin
|
|
|
|
- name: Get run as admin flag state
|
|
win_shell: |
|
|
$shortcut = "$env:Public\Desktop\cmd.lnk"
|
|
$flags = [System.BitConverter]::ToUInt32([System.IO.FIle]::ReadAllBytes($shortcut), 20)
|
|
($flags -band 0x00002000) -eq 0x00002000
|
|
register: shell_exe_admin_actual
|
|
|
|
- name: Check that run as admin flag was set (normal mode)
|
|
assert:
|
|
that:
|
|
- shell_exe_admin is changed
|
|
- shell_exe_admin_actual.stdout_lines[0]|bool
|
|
when: not in_check_mode
|
|
|
|
- name: Set shortcut to run as admin again
|
|
win_shortcut:
|
|
dest: '%Public%\Desktop\cmd.lnk'
|
|
src: '%SystemRoot%\System32\cmd.exe'
|
|
run_as_admin: True
|
|
state: present
|
|
register: shell_exe_admin_again
|
|
|
|
- name: Check that set run as admin wasn't changed (normal mode)
|
|
assert:
|
|
that:
|
|
- not shell_exe_admin_again is changed
|
|
when: not in_check_mode
|