summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-19 01:43:15 -0500
committerA. Wilcox <AWilcox@Wilcox-Tech.com>2019-10-19 01:43:15 -0500
commitd3489c52d4ad1e5b17ce88e8b0e5142b30bb324e (patch)
treef724d77518fc09b0707311b31857e784abda6daa /tests
parent2374778a55f9380ee5b821eb9563e20aad1bc3de (diff)
downloadhorizon-d3489c52d4ad1e5b17ce88e8b0e5142b30bb324e.tar.gz
horizon-d3489c52d4ad1e5b17ce88e8b0e5142b30bb324e.tar.bz2
horizon-d3489c52d4ad1e5b17ce88e8b0e5142b30bb324e.tar.xz
horizon-d3489c52d4ad1e5b17ce88e8b0e5142b30bb324e.zip
hscript: Implement UserPassphrase, add tests
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/0091-userpw-basic.installfile7
-rw-r--r--tests/fixtures/0092-userpw-without-pw.installfile7
-rw-r--r--tests/fixtures/0093-userpw-unknown-name.installfile8
-rw-r--r--tests/fixtures/0094-userpw-duplicate.installfile9
-rw-r--r--tests/fixtures/0095-userpw-plaintext.installfile7
-rw-r--r--tests/fixtures/0096-userpw-md5.installfile7
-rw-r--r--tests/fixtures/0097-userpw-missing.installfile6
-rw-r--r--tests/spec/validator.rb44
8 files changed, 95 insertions, 0 deletions
diff --git a/tests/fixtures/0091-userpw-basic.installfile b/tests/fixtures/0091-userpw-basic.installfile
new file mode 100644
index 0000000..2c3e842
--- /dev/null
+++ b/tests/fixtures/0091-userpw-basic.installfile
@@ -0,0 +1,7 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+userpw awilfox $6$UZJm/vBmVgyIdMZr$ppKEulz/HY0/e7RcXXujQbcqDXkUYgIqNEVPQJO6.le9kUpz8GvvRezY3ifqUUEwjhSo9tTOMG7lhqjn8gGpH0
diff --git a/tests/fixtures/0092-userpw-without-pw.installfile b/tests/fixtures/0092-userpw-without-pw.installfile
new file mode 100644
index 0000000..9b2b524
--- /dev/null
+++ b/tests/fixtures/0092-userpw-without-pw.installfile
@@ -0,0 +1,7 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+userpw awilfox
diff --git a/tests/fixtures/0093-userpw-unknown-name.installfile b/tests/fixtures/0093-userpw-unknown-name.installfile
new file mode 100644
index 0000000..285a6a0
--- /dev/null
+++ b/tests/fixtures/0093-userpw-unknown-name.installfile
@@ -0,0 +1,8 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+# Intentional misspelling
+userpw awilcox $6$UZJm/vBmVgyIdMZr$ppKEulz/HY0/e7RcXXujQbcqDXkUYgIqNEVPQJO6.le9kUpz8GvvRezY3ifqUUEwjhSo9tTOMG7lhqjn8gGpH0
diff --git a/tests/fixtures/0094-userpw-duplicate.installfile b/tests/fixtures/0094-userpw-duplicate.installfile
new file mode 100644
index 0000000..6416c6f
--- /dev/null
+++ b/tests/fixtures/0094-userpw-duplicate.installfile
@@ -0,0 +1,9 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+# Intentional duplication
+userpw awilfox $6$UZJm/vBmVgyIdMZr$ppKEulz/HY0/e7RcXXujQbcqDXkUYgIqNEVPQJO6.le9kUpz8GvvRezY3ifqUUEwjhSo9tTOMG7lhqjn8gGpH0
+userpw awilfox $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
diff --git a/tests/fixtures/0095-userpw-plaintext.installfile b/tests/fixtures/0095-userpw-plaintext.installfile
new file mode 100644
index 0000000..c0dce02
--- /dev/null
+++ b/tests/fixtures/0095-userpw-plaintext.installfile
@@ -0,0 +1,7 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+userpw awilfox Password123
diff --git a/tests/fixtures/0096-userpw-md5.installfile b/tests/fixtures/0096-userpw-md5.installfile
new file mode 100644
index 0000000..79009bc
--- /dev/null
+++ b/tests/fixtures/0096-userpw-md5.installfile
@@ -0,0 +1,7 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
+userpw awilfox $1$5f4dcc3b5aa765d61d8327deb882cf99
diff --git a/tests/fixtures/0097-userpw-missing.installfile b/tests/fixtures/0097-userpw-missing.installfile
new file mode 100644
index 0000000..3811133
--- /dev/null
+++ b/tests/fixtures/0097-userpw-missing.installfile
@@ -0,0 +1,6 @@
+network false
+hostname test.machine
+pkginstall adelie-base
+rootpw $6$gumtLGmHwOVIRpQR$2M9PUO24hy5mofzWWf9a.YLbzOgOlUby1g0hDj.wG67E2wrrvys59fq02PPdxBdbgkLZFtjfEx6MHZwMBamwu/
+mount /dev/sda1 /
+username awilfox
diff --git a/tests/spec/validator.rb b/tests/spec/validator.rb
index 7fd8356..76f1c6f 100644
--- a/tests/spec/validator.rb
+++ b/tests/spec/validator.rb
@@ -568,6 +568,50 @@ RSpec.describe 'HorizonScript validation', :type => :aruba do
expect(last_command_started).to have_output(/error: .*duplicate.*useralias/)
end
end
+ context "'userpw'" do
+ # Runner.Validate.userpw.
+ it "succeeds with username/passphrase combinations" do
+ use_fixture '0091-userpw-basic.installfile'
+ run_validate
+ expect(last_command_started).to have_output(PARSER_SUCCESS)
+ expect(last_command_started).to have_output(VALIDATOR_SUCCESS)
+ end
+ # Runner.Validate.userpw.Validity.
+ it "requires a passphrase to be provided" do
+ use_fixture '0092-userpw-without-pw.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*userpw.*required/)
+ end
+ # Runner.Validate.userpw.Name.
+ it "fails with a username that wasn't given" do
+ use_fixture '0093-userpw-unknown-name.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*userpw.*name/)
+ end
+ # Runner.Validate.userpw.Unique.
+ it "fails with more than one passphrase for an account" do
+ use_fixture '0094-userpw-duplicate.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*duplicate.*userpw/)
+ end
+ # Runner.Validate.userpw.Crypt.
+ it "fails with a plain-text password" do
+ use_fixture '0095-userpw-plaintext.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*userpw.*crypt/)
+ end
+ it "fails with an invalid encryption algorithm" do
+ use_fixture '0096-userpw-md5.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/error: .*userpw.*crypt/)
+ end
+ # Runner.Validate.userpw.None.
+ it "warns when an account doesn't have a passphrase" do
+ use_fixture '0097-userpw-missing.installfile'
+ run_validate
+ expect(last_command_started).to have_output(/warning: .*passphrase/)
+ end
+ end
end
context "package specifications" do
# no requirements for these, but I think obvious.