Convert postflight test to spec.
This commit is contained in:
parent
ba61d3ca6b
commit
e7c943b561
@ -1,4 +1,4 @@
|
||||
require "test_helper"
|
||||
require "spec_helper"
|
||||
|
||||
describe Hbc::DSL::Postflight do
|
||||
let(:cask) { Hbc::CaskLoader.load_from_file(TEST_FIXTURE_DIR/"cask/Casks/basic-cask.rb") }
|
||||
@ -1,15 +1,19 @@
|
||||
require "test_helper"
|
||||
require "spec_helper"
|
||||
|
||||
shared_examples_for Hbc::Staged do
|
||||
require "hbc/staged"
|
||||
|
||||
shared_examples Hbc::Staged do
|
||||
let(:fake_pathname_exists) {
|
||||
fake_pathname = Pathname("/path/to/file/that/exists")
|
||||
fake_pathname.stubs(exist?: true, expand_path: fake_pathname)
|
||||
fake_pathname = Pathname.new("/path/to/file/that/exists")
|
||||
allow(fake_pathname).to receive(:exist?).and_return(true)
|
||||
allow(fake_pathname).to receive(:expand_path).and_return(fake_pathname)
|
||||
fake_pathname
|
||||
}
|
||||
|
||||
let(:fake_pathname_does_not_exist) {
|
||||
fake_pathname = Pathname("/path/to/file/that/does/not/exist")
|
||||
fake_pathname.stubs(exist?: false, expand_path: fake_pathname)
|
||||
fake_pathname = Pathname.new("/path/to/file/that/does/not/exist")
|
||||
allow(fake_pathname).to receive(:exist?).and_return(false)
|
||||
allow(fake_pathname).to receive(:expand_path).and_return(fake_pathname)
|
||||
fake_pathname
|
||||
}
|
||||
|
||||
@ -17,93 +21,123 @@ shared_examples_for Hbc::Staged do
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["echo", "homebrew-cask", "rocks!"]
|
||||
)
|
||||
staged.system_command("echo", args: ["homebrew-cask", "rocks!"])
|
||||
|
||||
shutup do
|
||||
staged.system_command("echo", args: ["homebrew-cask", "rocks!"])
|
||||
end
|
||||
end
|
||||
|
||||
it "can get the Info.plist file for the primary app" do
|
||||
staged.info_plist_file.to_s.must_include Hbc.appdir.join("TestCask.app/Contents/Info.plist")
|
||||
expect(staged.info_plist_file.to_s).to include Hbc.appdir.join("TestCask.app/Contents/Info.plist")
|
||||
end
|
||||
|
||||
it "can execute commands on the Info.plist file" do
|
||||
staged.stubs(bundle_identifier: "com.example.BasicCask")
|
||||
allow(staged).to receive(:bundle_identifier).and_return("com.example.BasicCask")
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/usr/libexec/PlistBuddy", "-c", "Print CFBundleIdentifier", staged.info_plist_file]
|
||||
)
|
||||
staged.plist_exec("Print CFBundleIdentifier")
|
||||
|
||||
shutup do
|
||||
staged.plist_exec("Print CFBundleIdentifier")
|
||||
end
|
||||
end
|
||||
|
||||
it "can set a key in the Info.plist file" do
|
||||
staged.stubs(bundle_identifier: "com.example.BasicCask")
|
||||
allow(staged).to receive(:bundle_identifier).and_return("com.example.BasicCask")
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/usr/libexec/PlistBuddy", "-c", "Set :JVMOptions:JVMVersion 1.6+", staged.info_plist_file]
|
||||
)
|
||||
staged.plist_set(":JVMOptions:JVMVersion", "1.6+")
|
||||
|
||||
shutup do
|
||||
staged.plist_set(":JVMOptions:JVMVersion", "1.6+")
|
||||
end
|
||||
end
|
||||
|
||||
it "can set the permissions of a file" do
|
||||
fake_pathname = fake_pathname_exists
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/bin/chmod", "-R", "--", "777", fake_pathname]
|
||||
)
|
||||
staged.set_permissions(fake_pathname.to_s, "777")
|
||||
|
||||
shutup do
|
||||
staged.set_permissions(fake_pathname.to_s, "777")
|
||||
end
|
||||
end
|
||||
|
||||
it "can set the permissions of multiple files" do
|
||||
fake_pathname = fake_pathname_exists
|
||||
staged.stubs(:Pathname).returns(fake_pathname)
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/bin/chmod", "-R", "--", "777", fake_pathname, fake_pathname]
|
||||
)
|
||||
staged.set_permissions([fake_pathname.to_s, fake_pathname.to_s], "777")
|
||||
|
||||
shutup do
|
||||
staged.set_permissions([fake_pathname.to_s, fake_pathname.to_s], "777")
|
||||
end
|
||||
end
|
||||
|
||||
it "cannot set the permissions of a file that does not exist" do
|
||||
fake_pathname = fake_pathname_does_not_exist
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
staged.set_permissions(fake_pathname.to_s, "777")
|
||||
end
|
||||
|
||||
it "can set the ownership of a file" do
|
||||
staged.stubs(current_user: "fake_user")
|
||||
fake_pathname = fake_pathname_exists
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
|
||||
allow(staged).to receive(:current_user).and_return("fake_user")
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/usr/bin/sudo", "-E", "--", "/usr/sbin/chown", "-R", "--", "fake_user:staff", fake_pathname]
|
||||
)
|
||||
staged.set_ownership(fake_pathname.to_s)
|
||||
|
||||
shutup do
|
||||
staged.set_ownership(fake_pathname.to_s)
|
||||
end
|
||||
end
|
||||
|
||||
it "can set the ownership of multiple files" do
|
||||
staged.stubs(current_user: "fake_user")
|
||||
fake_pathname = fake_pathname_exists
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
|
||||
allow(staged).to receive(:current_user).and_return("fake_user")
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/usr/bin/sudo", "-E", "--", "/usr/sbin/chown", "-R", "--", "fake_user:staff", fake_pathname, fake_pathname]
|
||||
)
|
||||
staged.set_ownership([fake_pathname.to_s, fake_pathname.to_s])
|
||||
|
||||
shutup do
|
||||
staged.set_ownership([fake_pathname.to_s, fake_pathname.to_s])
|
||||
end
|
||||
end
|
||||
|
||||
it "can set the ownership of a file with a different user and group" do
|
||||
fake_pathname = fake_pathname_exists
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
Hbc::FakeSystemCommand.expects_command(
|
||||
["/usr/bin/sudo", "-E", "--", "/usr/sbin/chown", "-R", "--", "other_user:other_group", fake_pathname]
|
||||
)
|
||||
staged.set_ownership(fake_pathname.to_s, user: "other_user", group: "other_group")
|
||||
|
||||
shutup do
|
||||
staged.set_ownership(fake_pathname.to_s, user: "other_user", group: "other_group")
|
||||
end
|
||||
end
|
||||
|
||||
it "cannot set the ownership of a file that does not exist" do
|
||||
staged.stubs(current_user: "fake_user")
|
||||
allow(staged).to receive(:current_user).and_return("fake_user")
|
||||
fake_pathname = fake_pathname_does_not_exist
|
||||
staged.stubs(Pathname: fake_pathname)
|
||||
staged.set_ownership(fake_pathname.to_s)
|
||||
allow(staged).to receive(:Pathname).and_return(fake_pathname)
|
||||
|
||||
shutup do
|
||||
staged.set_ownership(fake_pathname.to_s)
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -93,7 +93,6 @@ end
|
||||
|
||||
# Extend MiniTest API with support for RSpec-style shared examples
|
||||
require "support/shared_examples"
|
||||
require "support/shared_examples/staged.rb"
|
||||
|
||||
require "support/fake_dirs"
|
||||
require "support/fake_system_command"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user