Remove the GNOME Keyring persistent feature (Closes: #15275).
[tails-persistence-setup.git] / t / specs / Configuration.t
blob26cf770bd41df4fc6248d01358b6832c678d0540
1 use Test::Spec;
3 use 5.10.1;
4 use File::Temp qw{tempfile};
5 use Path::Class;
6 use Tails::Persistence::Configuration;
8 describe 'A configuration object' => sub {
9     describe 'built with no arguments' => sub {
10         my $configuration;
11         before sub {
12             $configuration = Tails::Persistence::Configuration->new();
13         };
14         it 'is defined' => sub {
15             ok(defined($configuration));
16         };
17         it 'has defined presets' => sub {
18             ok(defined($configuration->presets));
19         };
20         it 'can return all presets' => sub {
21             ok($configuration->presets->all);
22         };
23         it 'has a GnuPG preset' => sub {
24             is(scalar(grep { $_->name eq 'GnuPG' } $configuration->presets->all), 1);
25         };
26     };
27     describe 'built with no argument and an empty configuration file' => sub {
28         my ($configuration, $config_fh, $config_filename);
29         before sub {
30             ($config_fh, $config_filename) = tempfile();
31             print $config_fh '';
32             close $config_fh;
33             $configuration = Tails::Persistence::Configuration->new(
34                 config_file_path => file($config_filename)
35             );
36         };
37         it 'has 12 atoms' => sub {
38             is(scalar($configuration->all_atoms), 12);
39         };
40         it 'has 1 enabled atom' => sub {
41             is(scalar($configuration->all_enabled_atoms), 1);
42         };
43         it 'has 1 enabled line' => sub {
44             is(scalar($configuration->all_enabled_lines), 1);
45         };
46     };
47     describe 'built with no argument and a non-empty configuration file' => sub {
48         my ($configuration, $config_fh, $config_filename);
49         before sub {
50             ($config_fh, $config_filename) = tempfile();
51             say $config_fh <<EOF
52 /home/amnesia link,source=dotfiles
53 /home/amnesia/.myapp source=myapp
54 /home/amnesia/.gnupg source=gnupg
55 EOF
57             close $config_fh;
58             $configuration = Tails::Persistence::Configuration->new(
59                 config_file_path => file($config_filename)
60             );
61         };
62         it 'has 13 atoms' => sub {
63             is(scalar($configuration->all_atoms), 13);
64         };
65         it 'has 4 enabled atoms' => sub {
66             is(scalar($configuration->all_enabled_atoms), 4);
67         };
68         it 'has 4 enabled lines' => sub {
69             is(scalar($configuration->all_enabled_lines), 4);
70         };
71     };
74 runtests unless caller;