chef 16.0.257-universal-mingw32 → 16.2.44-universal-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -1
  3. data/README.md +3 -3
  4. data/Rakefile +44 -16
  5. data/chef.gemspec +4 -4
  6. data/distro/powershell/chef/chef.psm1 +3 -3
  7. data/distro/templates/powershell/chef/chef.psm1.erb +3 -3
  8. data/lib/chef/application/apply.rb +2 -2
  9. data/lib/chef/application/base.rb +1 -1
  10. data/lib/chef/application/client.rb +1 -1
  11. data/lib/chef/application/exit_code.rb +2 -2
  12. data/lib/chef/application/windows_service_manager.rb +1 -1
  13. data/lib/chef/chef_fs/chef_fs_data_store.rb +3 -3
  14. data/lib/chef/chef_fs/data_handler/data_bag_item_data_handler.rb +1 -1
  15. data/lib/chef/chef_fs/file_system/chef_server/acls_dir.rb +1 -1
  16. data/lib/chef/chef_fs/file_system/chef_server/cookbook_file.rb +1 -1
  17. data/lib/chef/chef_fs/file_system/chef_server/policies_dir.rb +1 -1
  18. data/lib/chef/chef_fs/file_system/chef_server/rest_list_dir.rb +1 -1
  19. data/lib/chef/chef_fs/file_system/multiplexed_dir.rb +1 -1
  20. data/lib/chef/chef_fs/file_system/repository/directory.rb +1 -1
  21. data/lib/chef/chef_fs/parallelizer/parallel_enumerable.rb +1 -1
  22. data/lib/chef/chef_fs/path_utils.rb +4 -4
  23. data/lib/chef/cookbook/chefignore.rb +1 -1
  24. data/lib/chef/cookbook/file_system_file_vendor.rb +1 -1
  25. data/lib/chef/cookbook/metadata.rb +2 -2
  26. data/lib/chef/cookbook_loader.rb +1 -1
  27. data/lib/chef/cookbook_manifest.rb +1 -1
  28. data/lib/chef/cookbook_site_streaming_uploader.rb +1 -1
  29. data/lib/chef/cookbook_version.rb +7 -7
  30. data/lib/chef/data_bag.rb +4 -4
  31. data/lib/chef/data_collector.rb +1 -1
  32. data/lib/chef/data_collector/error_handlers.rb +1 -1
  33. data/lib/chef/decorator/lazy_array.rb +2 -2
  34. data/lib/chef/deprecated.rb +5 -1
  35. data/lib/chef/digester.rb +4 -4
  36. data/lib/chef/dsl/declare_resource.rb +1 -1
  37. data/lib/chef/dsl/platform_introspection.rb +1 -1
  38. data/lib/chef/encrypted_data_bag_item/decryptor.rb +1 -1
  39. data/lib/chef/encrypted_data_bag_item/encryptor.rb +1 -1
  40. data/lib/chef/file_access_control.rb +1 -1
  41. data/lib/chef/formatters/base.rb +1 -1
  42. data/lib/chef/formatters/error_inspectors/compile_error_inspector.rb +1 -1
  43. data/lib/chef/formatters/error_inspectors/node_load_error_inspector.rb +2 -2
  44. data/lib/chef/formatters/error_inspectors/registration_error_inspector.rb +7 -7
  45. data/lib/chef/formatters/error_inspectors/resource_failure_inspector.rb +3 -3
  46. data/lib/chef/http.rb +18 -3
  47. data/lib/chef/http/decompressor.rb +1 -1
  48. data/lib/chef/http/http_request.rb +1 -1
  49. data/lib/chef/http/json_output.rb +1 -1
  50. data/lib/chef/http/ssl_policies.rb +18 -0
  51. data/lib/chef/json_compat.rb +1 -1
  52. data/lib/chef/key.rb +1 -1
  53. data/lib/chef/knife.rb +2 -2
  54. data/lib/chef/knife/bootstrap.rb +13 -16
  55. data/lib/chef/knife/bootstrap/chef_vault_handler.rb +1 -1
  56. data/lib/chef/knife/bootstrap/client_builder.rb +1 -1
  57. data/lib/chef/knife/bootstrap/templates/chef-full.erb +9 -9
  58. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +3 -1
  59. data/lib/chef/knife/client_bulk_delete.rb +1 -1
  60. data/lib/chef/knife/config_get.rb +1 -1
  61. data/lib/chef/knife/cookbook_delete.rb +1 -1
  62. data/lib/chef/knife/core/cookbook_scm_repo.rb +1 -1
  63. data/lib/chef/knife/core/hashed_command_loader.rb +1 -1
  64. data/lib/chef/knife/core/node_presenter.rb +1 -1
  65. data/lib/chef/knife/core/status_presenter.rb +1 -1
  66. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  67. data/lib/chef/knife/core/windows_bootstrap_context.rb +18 -3
  68. data/lib/chef/knife/data_bag_create.rb +1 -1
  69. data/lib/chef/knife/environment_compare.rb +1 -1
  70. data/lib/chef/knife/key_create_base.rb +1 -1
  71. data/lib/chef/knife/key_edit_base.rb +1 -1
  72. data/lib/chef/knife/list.rb +1 -1
  73. data/lib/chef/knife/node_bulk_delete.rb +1 -1
  74. data/lib/chef/knife/node_run_list_remove.rb +1 -1
  75. data/lib/chef/knife/role_bulk_delete.rb +1 -1
  76. data/lib/chef/knife/ssh.rb +2 -2
  77. data/lib/chef/knife/supermarket_install.rb +1 -1
  78. data/lib/chef/knife/supermarket_share.rb +1 -1
  79. data/lib/chef/knife/supermarket_unshare.rb +1 -1
  80. data/lib/chef/knife/{user_invite_recind.rb → user_invite_rescind.rb} +6 -6
  81. data/lib/chef/knife/yaml_convert.rb +2 -2
  82. data/lib/chef/log.rb +1 -1
  83. data/lib/chef/mixin/api_version_request_handling.rb +1 -1
  84. data/lib/chef/mixin/checksum.rb +0 -1
  85. data/lib/chef/mixin/create_path.rb +8 -8
  86. data/lib/chef/mixin/openssl_helper.rb +4 -4
  87. data/lib/chef/mixin/properties.rb +4 -2
  88. data/lib/chef/mixin/securable.rb +2 -2
  89. data/lib/chef/mixin/shell_out.rb +1 -1
  90. data/lib/chef/node/attribute.rb +2 -2
  91. data/lib/chef/node/immutable_collections.rb +1 -1
  92. data/lib/chef/node/mixin/deep_merge_cache.rb +7 -7
  93. data/lib/chef/policy_builder/policyfile.rb +1 -1
  94. data/lib/chef/powershell.rb +1 -1
  95. data/lib/chef/property.rb +2 -2
  96. data/lib/chef/provider.rb +3 -3
  97. data/lib/chef/provider/batch.rb +3 -10
  98. data/lib/chef/provider/cron.rb +2 -14
  99. data/lib/chef/provider/directory.rb +1 -1
  100. data/lib/chef/provider/execute.rb +3 -2
  101. data/lib/chef/provider/file.rb +1 -1
  102. data/lib/chef/provider/group/dscl.rb +2 -2
  103. data/lib/chef/provider/group/windows.rb +1 -1
  104. data/lib/chef/provider/ifconfig.rb +7 -7
  105. data/lib/chef/provider/launchd.rb +28 -32
  106. data/lib/chef/provider/mount/aix.rb +1 -1
  107. data/lib/chef/provider/mount/windows.rb +2 -2
  108. data/lib/chef/provider/noop.rb +1 -1
  109. data/lib/chef/provider/package/cab.rb +1 -1
  110. data/lib/chef/provider/package/chocolatey.rb +1 -1
  111. data/lib/chef/provider/package/dpkg.rb +1 -1
  112. data/lib/chef/provider/package/freebsd/base.rb +2 -1
  113. data/lib/chef/provider/package/homebrew.rb +1 -1
  114. data/lib/chef/provider/package/macports.rb +0 -2
  115. data/lib/chef/provider/package/openbsd.rb +1 -1
  116. data/lib/chef/provider/package/portage.rb +3 -2
  117. data/lib/chef/provider/package/powershell.rb +6 -2
  118. data/lib/chef/provider/package/rubygems.rb +3 -3
  119. data/lib/chef/provider/package/snap.rb +96 -27
  120. data/lib/chef/provider/package/windows.rb +27 -52
  121. data/lib/chef/provider/package/windows/msi.rb +3 -3
  122. data/lib/chef/provider/package/windows/registry_uninstall_entry.rb +1 -1
  123. data/lib/chef/provider/package/yum.rb +1 -1
  124. data/lib/chef/provider/package/yum/yum_cache.rb +1 -1
  125. data/lib/chef/provider/powershell_script.rb +11 -15
  126. data/lib/chef/provider/remote_directory.rb +2 -2
  127. data/lib/chef/provider/remote_file/http.rb +4 -1
  128. data/lib/chef/provider/script.rb +4 -75
  129. data/lib/chef/provider/service/arch.rb +2 -2
  130. data/lib/chef/provider/service/debian.rb +2 -2
  131. data/lib/chef/provider/service/macosx.rb +13 -2
  132. data/lib/chef/provider/service/openbsd.rb +4 -4
  133. data/lib/chef/provider/service/redhat.rb +1 -1
  134. data/lib/chef/provider/service/simple.rb +3 -3
  135. data/lib/chef/provider/service/upstart.rb +1 -1
  136. data/lib/chef/provider/service/windows.rb +1 -1
  137. data/lib/chef/provider/subversion.rb +2 -2
  138. data/lib/chef/provider/user/aix.rb +1 -1
  139. data/lib/chef/provider/user/dscl.rb +7 -7
  140. data/lib/chef/provider/user/linux.rb +3 -3
  141. data/lib/chef/provider/user/mac.rb +15 -11
  142. data/lib/chef/provider/windows_script.rb +87 -25
  143. data/lib/chef/provider/windows_task.rb +5 -3
  144. data/lib/chef/provider/zypper_repository.rb +30 -10
  145. data/lib/chef/resource.rb +25 -14
  146. data/lib/chef/resource/alternatives.rb +65 -4
  147. data/lib/chef/resource/apt_package.rb +31 -2
  148. data/lib/chef/resource/apt_preference.rb +34 -5
  149. data/lib/chef/resource/apt_repository.rb +22 -15
  150. data/lib/chef/resource/apt_update.rb +6 -4
  151. data/lib/chef/resource/archive_file.rb +33 -12
  152. data/lib/chef/resource/bash.rb +1 -2
  153. data/lib/chef/resource/batch.rb +5 -3
  154. data/lib/chef/resource/bff_package.rb +1 -1
  155. data/lib/chef/resource/breakpoint.rb +1 -1
  156. data/lib/chef/resource/build_essential.rb +8 -4
  157. data/lib/chef/resource/cab_package.rb +1 -1
  158. data/lib/chef/resource/chef_client_cron.rb +12 -9
  159. data/lib/chef/resource/chef_client_scheduled_task.rb +22 -7
  160. data/lib/chef/resource/chef_client_systemd_timer.rb +10 -7
  161. data/lib/chef/resource/chef_gem.rb +6 -2
  162. data/lib/chef/resource/chef_handler.rb +3 -3
  163. data/lib/chef/resource/chef_sleep.rb +7 -4
  164. data/lib/chef/resource/chef_vault_secret.rb +4 -4
  165. data/lib/chef/resource/chocolatey_config.rb +5 -3
  166. data/lib/chef/resource/chocolatey_feature.rb +5 -3
  167. data/lib/chef/resource/chocolatey_package.rb +5 -3
  168. data/lib/chef/resource/chocolatey_source.rb +5 -3
  169. data/lib/chef/resource/cookbook_file.rb +3 -2
  170. data/lib/chef/resource/cron/_cron_shared.rb +98 -0
  171. data/lib/chef/resource/cron/cron.rb +46 -0
  172. data/lib/chef/resource/{cron_d.rb → cron/cron_d.rb} +28 -94
  173. data/lib/chef/resource/cron_access.rb +17 -6
  174. data/lib/chef/resource/csh.rb +1 -2
  175. data/lib/chef/resource/directory.rb +1 -1
  176. data/lib/chef/resource/dmg_package.rb +18 -15
  177. data/lib/chef/resource/dnf_package.rb +1 -1
  178. data/lib/chef/resource/dpkg_package.rb +1 -1
  179. data/lib/chef/resource/execute.rb +479 -9
  180. data/lib/chef/resource/file.rb +11 -8
  181. data/lib/chef/resource/freebsd_package.rb +2 -2
  182. data/lib/chef/resource/gem_package.rb +6 -6
  183. data/lib/chef/resource/group.rb +1 -1
  184. data/lib/chef/resource/helpers/cron_validations.rb +6 -3
  185. data/lib/chef/resource/homebrew_cask.rb +1 -1
  186. data/lib/chef/resource/homebrew_package.rb +30 -1
  187. data/lib/chef/resource/homebrew_tap.rb +1 -1
  188. data/lib/chef/resource/homebrew_update.rb +107 -0
  189. data/lib/chef/resource/hostname.rb +11 -24
  190. data/lib/chef/resource/http_request.rb +1 -1
  191. data/lib/chef/resource/ifconfig.rb +7 -7
  192. data/lib/chef/resource/ips_package.rb +1 -1
  193. data/lib/chef/resource/kernel_module.rb +15 -2
  194. data/lib/chef/resource/ksh.rb +1 -1
  195. data/lib/chef/resource/launchd.rb +5 -5
  196. data/lib/chef/resource/link.rb +4 -4
  197. data/lib/chef/resource/locale.rb +4 -4
  198. data/lib/chef/resource/log.rb +1 -1
  199. data/lib/chef/resource/macos_userdefaults.rb +15 -10
  200. data/lib/chef/resource/macosx_service.rb +1 -1
  201. data/lib/chef/resource/macports_package.rb +1 -1
  202. data/lib/chef/resource/mdadm.rb +1 -1
  203. data/lib/chef/resource/mount.rb +2 -2
  204. data/lib/chef/resource/msu_package.rb +2 -2
  205. data/lib/chef/resource/ohai.rb +1 -1
  206. data/lib/chef/resource/ohai_hint.rb +1 -1
  207. data/lib/chef/resource/openbsd_package.rb +1 -1
  208. data/lib/chef/resource/openssl_dhparam.rb +1 -1
  209. data/lib/chef/resource/openssl_ec_private_key.rb +1 -1
  210. data/lib/chef/resource/openssl_ec_public_key.rb +1 -1
  211. data/lib/chef/resource/openssl_rsa_private_key.rb +1 -1
  212. data/lib/chef/resource/openssl_rsa_public_key.rb +1 -1
  213. data/lib/chef/resource/openssl_x509_certificate.rb +1 -1
  214. data/lib/chef/resource/openssl_x509_crl.rb +1 -1
  215. data/lib/chef/resource/openssl_x509_request.rb +1 -1
  216. data/lib/chef/resource/osx_profile.rb +1 -1
  217. data/lib/chef/resource/package.rb +1 -1
  218. data/lib/chef/resource/pacman_package.rb +1 -1
  219. data/lib/chef/resource/paludis_package.rb +1 -1
  220. data/lib/chef/resource/perl.rb +1 -2
  221. data/lib/chef/resource/plist.rb +24 -5
  222. data/lib/chef/resource/portage_package.rb +1 -1
  223. data/lib/chef/resource/powershell_package.rb +1 -1
  224. data/lib/chef/resource/powershell_package_source.rb +1 -1
  225. data/lib/chef/resource/powershell_script.rb +5 -3
  226. data/lib/chef/resource/python.rb +1 -2
  227. data/lib/chef/resource/reboot.rb +1 -1
  228. data/lib/chef/resource/registry_key.rb +1 -1
  229. data/lib/chef/resource/remote_directory.rb +1 -1
  230. data/lib/chef/resource/remote_file.rb +26 -11
  231. data/lib/chef/resource/rhsm_errata.rb +1 -3
  232. data/lib/chef/resource/rhsm_errata_level.rb +1 -1
  233. data/lib/chef/resource/rhsm_register.rb +1 -2
  234. data/lib/chef/resource/rhsm_repo.rb +1 -2
  235. data/lib/chef/resource/rhsm_subscription.rb +1 -3
  236. data/lib/chef/resource/route.rb +1 -1
  237. data/lib/chef/resource/rpm_package.rb +5 -2
  238. data/lib/chef/resource/ruby.rb +1 -2
  239. data/lib/chef/resource/ruby_block.rb +1 -4
  240. data/lib/chef/resource/scm/_scm.rb +4 -3
  241. data/lib/chef/resource/scm/git.rb +2 -2
  242. data/lib/chef/resource/scm/subversion.rb +2 -2
  243. data/lib/chef/resource/script.rb +1 -1
  244. data/lib/chef/resource/service.rb +1 -1
  245. data/lib/chef/resource/smartos_package.rb +1 -1
  246. data/lib/chef/resource/snap_package.rb +1 -1
  247. data/lib/chef/resource/solaris_package.rb +1 -1
  248. data/lib/chef/resource/ssh_known_hosts_entry.rb +1 -1
  249. data/lib/chef/resource/sudo.rb +4 -4
  250. data/lib/chef/resource/swap_file.rb +2 -2
  251. data/lib/chef/resource/sysctl.rb +61 -2
  252. data/lib/chef/resource/systemd_unit.rb +2 -2
  253. data/lib/chef/resource/template.rb +1 -1
  254. data/lib/chef/resource/timezone.rb +1 -1
  255. data/lib/chef/resource/user.rb +2 -2
  256. data/lib/chef/resource/user_ulimit.rb +24 -22
  257. data/lib/chef/resource/windows_ad_join.rb +31 -2
  258. data/lib/chef/resource/windows_audit_policy.rb +227 -0
  259. data/lib/chef/resource/windows_auto_run.rb +13 -2
  260. data/lib/chef/resource/windows_certificate.rb +28 -2
  261. data/lib/chef/resource/windows_dfs_folder.rb +1 -1
  262. data/lib/chef/resource/windows_dfs_namespace.rb +1 -1
  263. data/lib/chef/resource/windows_dfs_server.rb +2 -2
  264. data/lib/chef/resource/windows_env.rb +10 -1
  265. data/lib/chef/resource/windows_feature.rb +57 -2
  266. data/lib/chef/resource/windows_feature_dism.rb +15 -2
  267. data/lib/chef/resource/windows_feature_powershell.rb +29 -2
  268. data/lib/chef/resource/windows_firewall_rule.rb +11 -7
  269. data/lib/chef/resource/windows_font.rb +13 -4
  270. data/lib/chef/resource/windows_package.rb +66 -6
  271. data/lib/chef/resource/windows_pagefile.rb +32 -4
  272. data/lib/chef/resource/windows_path.rb +18 -1
  273. data/lib/chef/resource/windows_printer.rb +26 -6
  274. data/lib/chef/resource/windows_printer_port.rb +29 -1
  275. data/lib/chef/resource/windows_script.rb +2 -16
  276. data/lib/chef/resource/windows_security_policy.rb +47 -16
  277. data/lib/chef/resource/windows_service.rb +1 -1
  278. data/lib/chef/resource/windows_share.rb +23 -3
  279. data/lib/chef/resource/windows_shortcut.rb +13 -3
  280. data/lib/chef/resource/windows_task.rb +143 -29
  281. data/lib/chef/resource/windows_uac.rb +20 -1
  282. data/lib/chef/resource/windows_user_privilege.rb +45 -3
  283. data/lib/chef/resource/windows_workgroup.rb +19 -3
  284. data/lib/chef/resource/yum_package.rb +88 -6
  285. data/lib/chef/resource/yum_repository.rb +36 -19
  286. data/lib/chef/resource/zypper_package.rb +29 -3
  287. data/lib/chef/resource/zypper_repository.rb +17 -5
  288. data/lib/chef/resource_inspector.rb +5 -4
  289. data/lib/chef/resources.rb +4 -2
  290. data/lib/chef/run_context/cookbook_compiler.rb +1 -1
  291. data/lib/chef/scan_access_control.rb +1 -1
  292. data/lib/chef/search/query.rb +1 -1
  293. data/lib/chef/shell/ext.rb +1 -1
  294. data/lib/chef/util/diff.rb +2 -2
  295. data/lib/chef/util/dsc/lcm_output_parser.rb +3 -3
  296. data/lib/chef/util/windows/net_user.rb +1 -1
  297. data/lib/chef/util/windows/volume.rb +1 -1
  298. data/lib/chef/version.rb +1 -1
  299. data/lib/chef/win32/api.rb +2 -2
  300. data/lib/chef/win32/api/error.rb +3 -1
  301. data/lib/chef/win32/api/file.rb +18 -18
  302. data/lib/chef/win32/api/net.rb +1 -0
  303. data/lib/chef/win32/file.rb +1 -1
  304. data/lib/chef/win32/mutex.rb +1 -1
  305. data/lib/chef/win32/net.rb +1 -0
  306. data/lib/chef/win32/process.rb +2 -2
  307. data/lib/chef/win32/registry.rb +2 -2
  308. data/lib/chef/win32/security.rb +1 -1
  309. data/lib/chef/win32/security/sid.rb +4 -4
  310. data/spec/data/lwrp/providers/buck_passer.rb +1 -1
  311. data/spec/data/lwrp/providers/buck_passer_2.rb +1 -1
  312. data/spec/data/lwrp/providers/embedded_resource_accesses_providers_scope.rb +1 -1
  313. data/spec/functional/resource/cron_spec.rb +10 -0
  314. data/spec/functional/resource/dnf_package_spec.rb +2 -2
  315. data/spec/functional/resource/git_spec.rb +6 -6
  316. data/spec/functional/resource/launchd_spec.rb +232 -0
  317. data/spec/functional/resource/link_spec.rb +3 -3
  318. data/spec/functional/resource/remote_file_spec.rb +3 -3
  319. data/spec/functional/resource/user/dscl_spec.rb +1 -1
  320. data/spec/functional/resource/user/mac_user_spec.rb +1 -1
  321. data/spec/functional/resource/windows_task_spec.rb +12 -12
  322. data/spec/integration/knife/raw_spec.rb +4 -4
  323. data/spec/integration/knife/redirection_spec.rb +2 -2
  324. data/spec/support/chef_helpers.rb +1 -1
  325. data/spec/support/platform_helpers.rb +1 -14
  326. data/spec/support/platforms/win32/spec_service.rb +1 -1
  327. data/spec/support/shared/functional/execute_resource.rb +1 -1
  328. data/spec/support/shared/functional/file_resource.rb +1 -1
  329. data/spec/support/shared/functional/http.rb +2 -2
  330. data/spec/support/shared/functional/windows_script.rb +1 -1
  331. data/spec/support/shared/unit/execute_resource.rb +1 -1
  332. data/spec/support/shared/unit/mock_shellout.rb +1 -1
  333. data/spec/support/shared/unit/provider/useradd_based_user_provider.rb +4 -4
  334. data/spec/unit/application_spec.rb +7 -0
  335. data/spec/unit/data_bag_spec.rb +1 -1
  336. data/spec/unit/file_access_control_spec.rb +1 -1
  337. data/spec/unit/http/ssl_policies_spec.rb +20 -0
  338. data/spec/unit/knife/bootstrap_spec.rb +2 -2
  339. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +7 -1
  340. data/spec/unit/knife/role_env_run_list_add_spec.rb +6 -6
  341. data/spec/unit/knife/role_env_run_list_clear_spec.rb +4 -4
  342. data/spec/unit/knife/role_env_run_list_remove_spec.rb +4 -4
  343. data/spec/unit/knife/role_env_run_list_replace_spec.rb +4 -4
  344. data/spec/unit/knife/role_env_run_list_set_spec.rb +4 -4
  345. data/spec/unit/knife/role_run_list_add_spec.rb +6 -6
  346. data/spec/unit/knife/role_run_list_clear_spec.rb +4 -4
  347. data/spec/unit/knife/role_run_list_remove_spec.rb +4 -4
  348. data/spec/unit/knife/role_run_list_replace_spec.rb +4 -4
  349. data/spec/unit/knife/role_run_list_set_spec.rb +4 -4
  350. data/spec/unit/mixin/openssl_helper_spec.rb +4 -4
  351. data/spec/unit/mixin/shell_out_spec.rb +25 -31
  352. data/spec/unit/mixin/user_context_spec.rb +1 -9
  353. data/spec/unit/node/attribute_spec.rb +1 -1
  354. data/spec/unit/property_spec.rb +1 -1
  355. data/spec/unit/provider/apt_repository_spec.rb +27 -27
  356. data/spec/unit/provider/batch_spec.rb +130 -0
  357. data/spec/unit/provider/cron_spec.rb +9 -49
  358. data/spec/unit/provider/git_spec.rb +3 -3
  359. data/spec/unit/provider/group/groupadd_spec.rb +1 -1
  360. data/spec/unit/provider/launchd_spec.rb +8 -50
  361. data/spec/unit/provider/osx_profile_spec.rb +2 -2
  362. data/spec/unit/provider/package/msu_spec.rb +3 -3
  363. data/spec/unit/provider/package/portage_spec.rb +2 -2
  364. data/spec/unit/provider/package/powershell_spec.rb +96 -87
  365. data/spec/unit/provider/package/snap_spec.rb +1 -1
  366. data/spec/unit/provider/powershell_script_spec.rb +3 -45
  367. data/spec/unit/provider/script_spec.rb +20 -110
  368. data/spec/unit/provider/service/gentoo_service_spec.rb +1 -1
  369. data/spec/unit/provider/zypper_repository_spec.rb +75 -25
  370. data/spec/unit/provider_resolver_spec.rb +11 -11
  371. data/spec/unit/resource/archive_file_spec.rb +11 -2
  372. data/spec/unit/resource/chef_client_scheduled_task_spec.rb +17 -7
  373. data/spec/unit/resource/cron_spec.rb +2 -2
  374. data/spec/unit/resource/helpers/cron_validations_spec.rb +5 -1
  375. data/spec/unit/resource/homebrew_update_spec.rb +30 -0
  376. data/spec/unit/resource/powershell_script_spec.rb +10 -15
  377. data/spec/unit/resource/timezone_spec.rb +1 -1
  378. data/spec/unit/resource/windows_audit_policy_spec.rb +64 -0
  379. data/spec/unit/resource/windows_dns_record_spec.rb +3 -3
  380. data/spec/unit/resource/windows_dns_zone_spec.rb +2 -2
  381. data/spec/unit/resource/windows_package_spec.rb +10 -0
  382. data/spec/unit/resource/windows_task_spec.rb +1 -1
  383. data/spec/unit/resource/windows_uac_spec.rb +2 -2
  384. data/spec/unit/resource/yum_repository_spec.rb +21 -21
  385. data/spec/unit/resource_spec.rb +67 -1
  386. data/spec/unit/run_context_spec.rb +1 -1
  387. data/spec/unit/util/dsc/configuration_generator_spec.rb +1 -1
  388. data/spec/unit/util/threaded_job_queue_spec.rb +9 -0
  389. data/spec/unit/win32/registry_spec.rb +1 -1
  390. metadata +28 -27
  391. data/lib/chef/resource/cron.rb +0 -157
@@ -77,17 +77,9 @@ describe "a class that mixes in user_context" do
77
77
  end
78
78
 
79
79
  context "when the block raises an exception" do
80
- class UserContextTestException < RuntimeError
81
- end
82
- let(:block_parameter) { Proc.new { raise UserContextTextException } }
83
-
84
- it "raises the exception raised by the block" do
85
- expect { instance_with_user_context.with_context("kamilah", nil, "chef4life", &block_parameter) }.not_to raise_error(UserContextTestException)
86
- end
87
-
88
80
  it "closes the logon session so resources are not leaked" do
89
81
  expect(logon_session).to receive(:close)
90
- expect { instance_with_user_context.with_context("kamilah", nil, "chef4life", &block_parameter) }.not_to raise_error(UserContextTestException)
82
+ expect { instance_with_user_context.with_context("kamilah", nil, "chef4life") { 1 / 0 } }.to raise_error(ZeroDivisionError)
91
83
  end
92
84
  end
93
85
  end
@@ -382,7 +382,7 @@ describe Chef::Node::Attribute do
382
382
  expect(@attributes["command"]["ps"]).to eq("ps -ef")
383
383
  end
384
384
 
385
- it "should return default data if it is not overriden or in attribute data" do
385
+ it "should return default data if it is not overridden or in attribute data" do
386
386
  expect(@attributes["music"]["mastodon"]).to eq("rocks")
387
387
  end
388
388
 
@@ -121,7 +121,7 @@ describe "Chef::Resource.property" do
121
121
 
122
122
  context "deprecated properties" do
123
123
  it "does not create a deprecation warning on definition" do
124
- expect { resource_class.class_eval { property :x, String, deprecated: 10 } }.not_to raise_error Chef::Exceptions::DeprecatedFeatureError
124
+ expect { resource_class.class_eval { property :x, String, deprecated: 10 } }.not_to raise_error
125
125
  end
126
126
 
127
127
  with_property ":x, deprecated: 'a deprecated property'" do
@@ -18,33 +18,33 @@
18
18
 
19
19
  require "spec_helper"
20
20
 
21
- # Now we are using the option --with-colons that works across old os versions
22
- # as well as the latest (16.10). This for both `apt-key` and `gpg` commands
23
- #
24
- # Output of the command:
25
- # => apt-key adv --list-public-keys --with-fingerprint --with-colons
26
- APT_KEY_FINGER = <<~EOF.freeze
27
- tru:t:1:1488924856:0:3:1:5
28
- pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
29
- fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
30
- sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
31
- pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
32
- fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
33
- pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
34
- fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
35
- pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
36
- fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
37
- EOF
38
-
39
- # Output of the command:
40
- # => gpg --with-fingerprint --with-colons [FILE]
41
- GPG_FINGER = <<~EOF.freeze
42
- pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
43
- fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
44
- sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
45
- EOF
46
-
47
21
  describe "Chef::Provider::AptRepository" do
22
+ # Now we are using the option --with-colons that works across old os versions
23
+ # as well as the latest (16.10). This for both `apt-key` and `gpg` commands
24
+ #
25
+ # Output of the command:
26
+ # => apt-key adv --list-public-keys --with-fingerprint --with-colons
27
+ APT_KEY_FINGER = <<~EOF.freeze
28
+ tru:t:1:1488924856:0:3:1:5
29
+ pub:-:1024:17:40976EAF437D05B5:2004-09-12:::-:Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>::scESC:
30
+ fpr:::::::::630239CC130E1A7FD81A27B140976EAF437D05B5:
31
+ sub:-:2048:16:251BEFF479164387:2004-09-12::::::e:
32
+ pub:-:1024:17:46181433FBB75451:2004-12-30:::-:Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>::scSC:
33
+ fpr:::::::::C5986B4F1257FFA86632CBA746181433FBB75451:
34
+ pub:-:4096:1:3B4FE6ACC0B21F32:2012-05-11:::-:Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>::scSC:
35
+ fpr:::::::::790BC7277767219C42C86F933B4FE6ACC0B21F32:
36
+ pub:-:4096:1:D94AA3F0EFE21092:2012-05-11:::-:Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>::scSC:
37
+ fpr:::::::::843938DF228D22F7B3742BC0D94AA3F0EFE21092:
38
+ EOF
39
+
40
+ # Output of the command:
41
+ # => gpg --with-fingerprint --with-colons [FILE]
42
+ APG_GPG_FINGER = <<~EOF.freeze
43
+ pub:-:1024:17:327574EE02A818DD:2009-04-22:::-:Cloudera Apt Repository:
44
+ fpr:::::::::F36A89E33CC1BD0F71079007327574EE02A818DD:
45
+ sub:-:2048:16:84080586D1CA74A1:2009-04-22::::
46
+ EOF
47
+
48
48
  let(:node) { Chef::Node.new }
49
49
  let(:events) { Chef::EventDispatch::Dispatcher.new }
50
50
  let(:run_context) { Chef::RunContext.new(node, {}, events) }
@@ -61,7 +61,7 @@ describe "Chef::Provider::AptRepository" do
61
61
  end
62
62
 
63
63
  let(:gpg_finger) do
64
- double("shell_out", stdout: GPG_FINGER, exitstatus: 0, error?: false)
64
+ double("shell_out", stdout: APG_GPG_FINGER, exitstatus: 0, error?: false)
65
65
  end
66
66
 
67
67
  let(:gpg_shell_out_success) do
@@ -0,0 +1,130 @@
1
+ #
2
+ # Author:: Adam Jacob (adam@chef.io)
3
+ # Copyright:: Copyright 2009-2016, Opscode
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require "spec_helper"
20
+
21
+ describe Chef::Provider::Batch do
22
+ let(:node) do
23
+ node = Chef::Node.new
24
+ node.default["kernel"] = {}
25
+ node.default["kernel"][:machine] = :x86_64.to_s
26
+ node
27
+ end
28
+
29
+ let(:events) { Chef::EventDispatch::Dispatcher.new }
30
+
31
+ let(:run_context) { Chef::RunContext.new(node, {}, events) }
32
+
33
+ let(:new_resource) do
34
+ new_resource = Chef::Resource::Batch.new("cmd.exe and conquer")
35
+ new_resource.code %q{echo "hello"}
36
+ new_resource
37
+ end
38
+
39
+ let(:provider) { Chef::Provider::Batch.new(new_resource, run_context) }
40
+
41
+ context "#grant_alternate_user_read_access" do
42
+ before do
43
+ allow(ChefUtils).to receive(:windows?).and_return(true)
44
+ stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_READ", 1)
45
+ stub_const("Chef::ReservedNames::Win32::API::Security::GENERIC_EXECUTE", 4)
46
+ stub_const("Chef::ReservedNames::Win32::Security", Class.new)
47
+ stub_const("Chef::ReservedNames::Win32::Security::SecurableObject", Class.new)
48
+ stub_const("Chef::ReservedNames::Win32::Security::SID", Class.new)
49
+ stub_const("Chef::ReservedNames::Win32::Security::ACE", Class.new)
50
+ stub_const("Chef::ReservedNames::Win32::Security::ACL", Class.new)
51
+
52
+ provider.singleton_class.send(:public, :grant_alternate_user_read_access)
53
+ end
54
+
55
+ context "when an alternate user is not specified" do
56
+ it "does not attempt to set the script file's security descriptor" do
57
+ expect(provider).to receive(:grant_alternate_user_read_access)
58
+ expect(Chef::ReservedNames::Win32::Security::SecurableObject).not_to receive(:new)
59
+ provider.grant_alternate_user_read_access("a fake path")
60
+ end
61
+ end
62
+
63
+ context "when an alternate user is specified" do
64
+ let(:security_descriptor) { instance_double("Chef::ReservedNames::Win32::Security::SecurityDescriptor", dacl: []) }
65
+ let(:securable_object) { instance_double("Chef::ReservedNames::Win32::Security::SecurableObject", :security_descriptor => security_descriptor, :dacl= => nil) }
66
+
67
+ it "sets the script file's security descriptor" do
68
+ new_resource.user("toor")
69
+ expect(Chef::ReservedNames::Win32::Security::SecurableObject).to receive(:new).and_return(securable_object)
70
+ expect(Chef::ReservedNames::Win32::Security::SID).to receive(:from_account).and_return(nil)
71
+ expect(Chef::ReservedNames::Win32::Security::ACE).to receive(:access_allowed).and_return(nil)
72
+ expect(Chef::ReservedNames::Win32::Security::ACL).to receive(:create).and_return(nil)
73
+ expect(securable_object).to receive(:dacl=)
74
+ provider.grant_alternate_user_read_access("a fake path")
75
+ end
76
+ end
77
+ end
78
+
79
+ describe "#with_temp_script_file" do
80
+ before do
81
+ provider.singleton_class.send(:public, :with_temp_script_file)
82
+ provider.singleton_class.send(:public, :script_file_path)
83
+ end
84
+
85
+ it "should put the contents of the script in the temp file" do
86
+ temp_file_contents = nil
87
+
88
+ provider.with_temp_script_file do
89
+ temp_file_contents = File.read(provider.script_file_path)
90
+ end
91
+
92
+ expect(temp_file_contents.strip).to eq(%q{echo "hello"})
93
+ end
94
+ end
95
+
96
+ describe "#command" do
97
+ let(:basepath) { "C:\\Windows\\system32" }
98
+ let(:interpreter) { File.join(basepath, "cmd.exe") }
99
+
100
+ before do
101
+ allow(provider).to receive(:basepath).and_return(basepath)
102
+ provider.singleton_class.send(:public, :with_temp_script_file)
103
+ provider.singleton_class.send(:public, :script_file_path)
104
+ end
105
+
106
+ it 'should set the command to "interpreter" "tempfile"' do
107
+ command = nil
108
+ script_file_path = nil
109
+ provider.with_temp_script_file do
110
+ command = provider.command
111
+ script_file_path = provider.script_file_path
112
+ end
113
+
114
+ expect(command).to eq(%Q{"#{interpreter}" /c "#{script_file_path}"})
115
+ end
116
+
117
+ it "should set the command to 'interpreter flags tempfile'" do
118
+ new_resource.flags "/f"
119
+
120
+ command = nil
121
+ script_file_path = nil
122
+ provider.with_temp_script_file do
123
+ command = provider.command
124
+ script_file_path = provider.script_file_path
125
+ end
126
+
127
+ expect(command).to eq(%Q{"#{interpreter}" /f /c "#{script_file_path}"})
128
+ end
129
+ end
130
+ end
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
-
19
18
  require "spec_helper"
20
19
 
21
20
  describe Chef::Provider::Cron do
@@ -322,7 +321,7 @@ describe Chef::Provider::Cron do
322
321
  expect(cron.hour).to eq("5")
323
322
  expect(cron.day).to eq("*")
324
323
  expect(cron.month).to eq("Jan")
325
- expect(cron.weekday).to eq("Mon")
324
+ expect(cron.weekday).to eq("1")
326
325
  expect(cron.command).to eq("/bin/true param1 param2")
327
326
  end
328
327
 
@@ -338,6 +337,7 @@ describe Chef::Provider::Cron do
338
337
  0 2 * * * /some/other/command
339
338
 
340
339
  # Chef Name: cronhole some stuff
340
+ * * * * * /bin/true
341
341
  CRONTAB
342
342
  cron = @provider.load_current_resource
343
343
  expect(@provider.cron_exists).to eq(true)
@@ -347,7 +347,7 @@ describe Chef::Provider::Cron do
347
347
  expect(cron.month).to eq("*")
348
348
  expect(cron.weekday).to eq("*")
349
349
  expect(cron.time).to eq(nil)
350
- expect(cron.command).to eq(nil)
350
+ expect(cron.command).to eq("/bin/true")
351
351
  end
352
352
 
353
353
  it "should not pick up a commented out crontab line" do
@@ -355,6 +355,7 @@ describe Chef::Provider::Cron do
355
355
  0 2 * * * /some/other/command
356
356
 
357
357
  # Chef Name: cronhole some stuff
358
+ * * * * * /bin/true
358
359
  #* 5 * 1 * /bin/true param1 param2
359
360
  CRONTAB
360
361
  cron = @provider.load_current_resource
@@ -365,7 +366,7 @@ describe Chef::Provider::Cron do
365
366
  expect(cron.month).to eq("*")
366
367
  expect(cron.weekday).to eq("*")
367
368
  expect(cron.time).to eq(nil)
368
- expect(cron.command).to eq(nil)
369
+ expect(cron.command).to eq("/bin/true")
369
370
  end
370
371
 
371
372
  it "should not pick up a later crontab entry" do
@@ -373,6 +374,7 @@ describe Chef::Provider::Cron do
373
374
  0 2 * * * /some/other/command
374
375
 
375
376
  # Chef Name: cronhole some stuff
377
+ * * * * * /bin/true
376
378
  #* 5 * 1 * /bin/true param1 param2
377
379
  # Chef Name: something else
378
380
  2 * 1 * * /bin/false
@@ -387,7 +389,7 @@ describe Chef::Provider::Cron do
387
389
  expect(cron.month).to eq("*")
388
390
  expect(cron.weekday).to eq("*")
389
391
  expect(cron.time).to eq(nil)
390
- expect(cron.command).to eq(nil)
392
+ expect(cron.command).to eq("/bin/true")
391
393
  end
392
394
  end
393
395
  end
@@ -1040,48 +1042,6 @@ describe Chef::Provider::Cron do
1040
1042
  end
1041
1043
  end
1042
1044
 
1043
- describe "weekday_in_crontab" do
1044
- context "when weekday is symbol" do
1045
- it "should return weekday in crontab format" do
1046
- @new_resource.weekday :wednesday
1047
- expect(@provider.send(:weekday_in_crontab)).to eq("3")
1048
- end
1049
-
1050
- it "should raise an error with an unknown weekday" do
1051
- expect { @new_resource.weekday :caturday }.to raise_error(RangeError)
1052
- end
1053
- end
1054
-
1055
- context "when weekday is a number in a string" do
1056
- it "should return the string" do
1057
- @new_resource.weekday "3"
1058
- expect(@provider.send(:weekday_in_crontab)).to eq("3")
1059
- end
1060
-
1061
- it "should raise an error with an out of range number" do
1062
- expect { @new_resource.weekday "-1" }.to raise_error(RangeError)
1063
- end
1064
- end
1065
-
1066
- context "when weekday is string with the name of the week" do
1067
- it "should return the string" do
1068
- @new_resource.weekday "mon"
1069
- expect(@provider.send(:weekday_in_crontab)).to eq("mon")
1070
- end
1071
- end
1072
-
1073
- context "when weekday is an integer" do
1074
- it "should return the integer" do
1075
- @new_resource.weekday 1
1076
- expect(@provider.send(:weekday_in_crontab)).to eq("1")
1077
- end
1078
-
1079
- it "should raise an error with an out of range integer" do
1080
- expect { @new_resource.weekday 45 }.to raise_error(RangeError)
1081
- end
1082
- end
1083
- end
1084
-
1085
1045
  describe "#env_var_str" do
1086
1046
  context "when no env vars are set" do
1087
1047
  it "returns an empty string" do
@@ -1196,8 +1156,8 @@ describe Chef::Provider::Cron do
1196
1156
  context "Without command, passed" do
1197
1157
  context "as nil" do
1198
1158
  it "returns an empty string with a next line" do
1199
- @new_resource.command nil
1200
- expect(@provider.send(:cmd_str)).to eq(" \n")
1159
+ @new_resource.command "bin/true"
1160
+ expect(@provider.send(:cmd_str)).to eq(" bin/true\n")
1201
1161
  end
1202
1162
  end
1203
1163
  context "as an empty string" do
@@ -678,7 +678,7 @@ describe Chef::Provider::Git do
678
678
  expect(@provider).to receive(:enable_submodules)
679
679
  expect(@provider).to receive(:add_remotes)
680
680
  @provider.run_action(:checkout)
681
- # @resource.should be_updated
681
+ # @resource.should be_updated
682
682
  end
683
683
 
684
684
  it "should not checkout if the destination exists or is a non empty directory" do
@@ -716,7 +716,7 @@ describe Chef::Provider::Git do
716
716
  expect(@provider).to receive(:enable_submodules)
717
717
  expect(@provider).to receive(:add_remotes)
718
718
  @provider.run_action(:sync)
719
- # @resource.should be_updated
719
+ # @resource.should be_updated
720
720
  end
721
721
 
722
722
  it "does not fetch any updates if the remote revision matches the current revision" do
@@ -736,7 +736,7 @@ describe Chef::Provider::Git do
736
736
  expect(@provider).to receive(:action_checkout)
737
737
  expect(@provider).not_to receive(:shell_out!)
738
738
  @provider.run_action(:sync)
739
- # @resource.should be_updated
739
+ # @resource.should be_updated
740
740
  end
741
741
 
742
742
  it "clones the repo instead of fetching updates if the deploy directory is empty" do
@@ -57,7 +57,7 @@ describe Chef::Provider::Group::Groupadd do
57
57
  end
58
58
 
59
59
  it "should set the option for #{property} if the new resources #{property} is not null" do
60
- allow(new_resource).to receive(property).and_return("wowaweea")
60
+ allow(new_resource).to receive(property).and_return("cactus")
61
61
  expect(provider.set_options).to eql([ option, new_resource.send(property), new_resource.group_name])
62
62
  end
63
63
  end
@@ -131,8 +131,8 @@ describe Chef::Provider::Launchd do
131
131
  new_resource.program "/Library/scripts/call_mom.sh"
132
132
  new_resource.time_out 300
133
133
  new_resource.start_calendar_interval "Hour" => 10, "Weekday" => 7
134
- expect(provider.content?).to be_truthy
135
- expect(provider.content).to eql(test_plist)
134
+ expect(provider.file_content?).to be_truthy
135
+ expect(provider.file_content).to eql(test_plist)
136
136
  end
137
137
  end
138
138
 
@@ -147,8 +147,8 @@ describe Chef::Provider::Launchd do
147
147
  new_resource.program "/Library/scripts/call_mom.sh"
148
148
  new_resource.time_out 300
149
149
  new_resource.start_calendar_interval allowed
150
- expect(provider.content?).to be_truthy
151
- expect(provider.content).to eql(test_plist_multiple_intervals)
150
+ expect(provider.file_content?).to be_truthy
151
+ expect(provider.file_content).to eql(test_plist_multiple_intervals)
152
152
  end
153
153
 
154
154
  it "should allow all StartCalendarInterval keys" do
@@ -162,9 +162,9 @@ describe Chef::Provider::Launchd do
162
162
  new_resource.program "/Library/scripts/call_mom.sh"
163
163
  new_resource.time_out 300
164
164
  new_resource.start_calendar_interval allowed
165
- expect(provider.content?).to be_truthy
165
+ expect(provider.file_content?).to be_truthy
166
166
  %w{Minute Hour Day Weekday Month}.each do |key|
167
- expect(provider.content).to include("<key>#{key}</key>")
167
+ expect(provider.file_content).to include("<key>#{key}</key>")
168
168
  end
169
169
  end
170
170
 
@@ -188,50 +188,8 @@ describe Chef::Provider::Launchd do
188
188
  describe "hash is passed" do
189
189
  it "should produce the test_plist content from the plist_hash property" do
190
190
  new_resource.plist_hash test_hash
191
- expect(provider.content?).to be_truthy
192
- expect(provider.content).to eql(test_plist)
193
- end
194
- end
195
- end
196
-
197
- describe "with an :enable action" do
198
- describe "and the file has been updated" do
199
- before(:each) do
200
- allow(provider).to receive(
201
- :manage_plist
202
- ).with(:create).and_return(true)
203
- allow(provider).to receive(
204
- :manage_service
205
- ).with(:restart).and_return(true)
206
- end
207
-
208
- it "should call manage_service with a :restart action" do
209
- expect(provider.manage_service(:restart)).to be_truthy
210
- end
211
-
212
- it "works with action enable" do
213
- expect(run_resource_setup_for_action(:enable)).to be_truthy
214
- provider.action_enable
215
- end
216
- end
217
-
218
- describe "and the file has not been updated" do
219
- before(:each) do
220
- allow(provider).to receive(
221
- :manage_plist
222
- ).with(:create).and_return(nil)
223
- allow(provider).to receive(
224
- :manage_service
225
- ).with(:enable).and_return(true)
226
- end
227
-
228
- it "should call manage_service with a :enable action" do
229
- expect(provider.manage_service(:enable)).to be_truthy
230
- end
231
-
232
- it "works with action enable" do
233
- expect(run_resource_setup_for_action(:enable)).to be_truthy
234
- provider.action_enable
191
+ expect(provider.file_content?).to be_truthy
192
+ expect(provider.file_content).to eql(test_plist)
235
193
  end
236
194
  end
237
195
  end