Merge remote-tracking branch 'flapflap/de-network_configuration'
[tails-test.git] / features / step_definitions / i2p.rb
blob78644ae22bf86c244537a3de8f7b1d6e1da474a9
1 Given /^I2P is running$/ do
2   next if @skip_steps_while_restoring_background
3   try_for(30) do
4     @vm.execute('service i2p status').success?
5   end
6 end
8 Given /^the I2P router console is ready$/ do
9   next if @skip_steps_while_restoring_background
10   try_for(60) do
11     @vm.execute('. /usr/local/lib/tails-shell-library/i2p.sh; ' +
12                 'i2p_router_console_is_ready').success?
13   end
14 end
16 When /^I start the I2P Browser through the GNOME menu$/ do
17   next if @skip_steps_while_restoring_background
18   step 'I start "I2PBrowser" via the GNOME "Internet" applications menu'
19 end
21 Then /^the I2P Browser desktop file is (|not )present$/ do |mode|
22   next if @skip_steps_while_restoring_background
23   file = '/usr/share/applications/i2p-browser.desktop'
24   if mode == ''
25     assert(@vm.execute("test -e #{file}").success?)
26   elsif mode == 'not '
27     assert(@vm.execute("! test -e #{file}").success?)
28   else
29     raise "Unsupported mode passed: '#{mode}'"
30   end
31 end
33 Then /^the I2P Browser sudo rules are (enabled|not present)$/ do |mode|
34   next if @skip_steps_while_restoring_background
35   file = '/etc/sudoers.d/zzz_i2pbrowser'
36   if mode == 'enabled'
37     assert(@vm.execute("test -e #{file}").success?)
38   elsif mode == 'not present'
39     assert(@vm.execute("! test -e #{file}").success?)
40   else
41     raise "Unsupported mode passed: '#{mode}'"
42   end
43 end
45 Then /^the I2P firewall rules are (enabled|disabled)$/ do |mode|
46   next if @skip_steps_while_restoring_background
47   i2p_username = 'i2psvc'
48   i2p_uid = @vm.execute("getent passwd #{i2p_username} | awk -F ':' '{print $3}'").stdout.chomp
49   accept_rules = @vm.execute("iptables -L -n -v | grep -E '^\s+[0-9]+\s+[0-9]+\s+ACCEPT.*owner UID match #{i2p_uid}$'").stdout
50   accept_rules_count = accept_rules.lines.count
51   if mode == 'enabled'
52     assert_equal(13, accept_rules_count)
53   elsif mode == 'disabled'
54     assert_equal(0, accept_rules_count)
55   else
56     raise "Unsupported mode passed: '#{mode}'"
57   end
58 end