summaryrefslogtreecommitdiff
path: root/spec/unit
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-03-29 14:02:51 -0700
committerGitHub <noreply@github.com>2018-03-29 14:02:51 -0700
commit5522c964dbb7d2e06be74f4aaf6b26dd126f4875 (patch)
tree27c6fe9edaa7682858f555a5753aafad7b59aa8c /spec/unit
parent781ae80b17883382d35bf0acd374aec766f37f9c (diff)
parent0698ccebd1f40a2ad21230813cbafb0330b0d107 (diff)
downloadchef-5522c964dbb7d2e06be74f4aaf6b26dd126f4875.tar.gz
Merge pull request #7083 from chef/btm/fix-windows-service
Avoid lookups for rights of 'LocalSystem' in windows service
Diffstat (limited to 'spec/unit')
-rw-r--r--spec/unit/provider/service/windows_spec.rb17
1 files changed, 9 insertions, 8 deletions
diff --git a/spec/unit/provider/service/windows_spec.rb b/spec/unit/provider/service/windows_spec.rb
index 7cfc645b32..24c3e07f39 100644
--- a/spec/unit/provider/service/windows_spec.rb
+++ b/spec/unit/provider/service/windows_spec.rb
@@ -85,6 +85,7 @@ describe Chef::Provider::Service::Windows, "load_current_resource", :windows_onl
prvdr.current_resource = Chef::Resource::WindowsService.new("current-chef")
prvdr
end
+
let(:service_right) { Chef::Provider::Service::Windows::SERVICE_RIGHT }
before(:all) do
@@ -564,19 +565,11 @@ describe Chef::Provider::Service::Windows, "load_current_resource", :windows_onl
end
describe "running as a different account" do
- let(:old_run_as_user) { new_resource.run_as_user }
- let(:old_run_as_password) { new_resource.run_as_password }
-
before do
new_resource.run_as_user(".\\wallace")
new_resource.run_as_password("Wensleydale")
end
- after do
- new_resource.run_as_user(old_run_as_user)
- new_resource.run_as_password(old_run_as_password)
- end
-
it "calls #grant_service_logon if the :run_as_user and :run_as_password attributes are present" do
expect(Win32::Service).to receive(:start)
expect(provider).to receive(:grant_service_logon).and_return(true)
@@ -589,6 +582,14 @@ describe Chef::Provider::Service::Windows, "load_current_resource", :windows_onl
expect(Chef::ReservedNames::Win32::Security).not_to receive(:add_account_right).with("wallace", service_right)
provider.start_service
end
+
+ it "skips the rights check for LocalSystem" do
+ new_resource.run_as_user("LocalSystem")
+ expect(Win32::Service).to receive(:start)
+ expect(Chef::ReservedNames::Win32::Security).not_to receive(:get_account_right)
+ expect(Chef::ReservedNames::Win32::Security).not_to receive(:add_account_right)
+ provider.start_service
+ end
end
end