htty 1.1.6 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/History.markdown +46 -0
  2. data/README.markdown +12 -12
  3. data/VERSION +1 -1
  4. data/lib/htty/cli.rb +10 -0
  5. data/lib/htty/cli/command.rb +50 -41
  6. data/lib/htty/cli/commands/http_put.rb +3 -0
  7. data/lib/htty/cli/commands/query_unset.rb +4 -2
  8. data/lib/htty/cli/http_method_command.rb +5 -3
  9. data/spec/integration/htty/cli/commands/query_add_spec.rb +51 -0
  10. data/spec/integration/htty/cli/commands/query_remove_spec.rb +37 -0
  11. data/spec/integration/htty/cli/commands/query_set_spec.rb +72 -0
  12. data/spec/integration/htty/cli/commands/query_unset_spec.rb +37 -0
  13. data/spec/unit/htty/cli/commands/address_spec.rb +103 -0
  14. data/spec/unit/htty/cli/commands/body_clear_spec.rb +64 -0
  15. data/spec/unit/htty/cli/commands/body_request_spec.rb +72 -0
  16. data/spec/unit/htty/cli/commands/body_response_spec.rb +70 -0
  17. data/spec/unit/htty/cli/commands/body_set_spec.rb +71 -0
  18. data/spec/unit/htty/cli/commands/body_unset_spec.rb +69 -0
  19. data/spec/unit/htty/cli/commands/cd_spec.rb +57 -0
  20. data/spec/unit/htty/cli/commands/cookie_add_spec.rb +64 -0
  21. data/spec/unit/htty/cli/commands/cookie_remove_spec.rb +64 -0
  22. data/spec/unit/htty/cli/commands/cookies_add_spec.rb +78 -0
  23. data/spec/unit/htty/cli/commands/cookies_clear_spec.rb +64 -0
  24. data/spec/unit/htty/cli/commands/cookies_remove_all_spec.rb +73 -0
  25. data/spec/unit/htty/cli/commands/cookies_remove_spec.rb +69 -0
  26. data/spec/unit/htty/cli/commands/cookies_spec.rb +76 -0
  27. data/spec/unit/htty/cli/commands/cookies_use_spec.rb +75 -0
  28. data/spec/unit/htty/cli/commands/delete_spec.rb +64 -0
  29. data/spec/unit/htty/cli/commands/exit_spec.rb +64 -0
  30. data/spec/unit/htty/cli/commands/follow_spec.rb +70 -0
  31. data/spec/unit/htty/cli/commands/form_add_spec.rb +64 -0
  32. data/spec/unit/htty/cli/commands/form_clear_spec.rb +64 -0
  33. data/spec/unit/htty/cli/commands/form_remove_all_spec.rb +66 -0
  34. data/spec/unit/htty/cli/commands/form_remove_spec.rb +57 -0
  35. data/spec/unit/htty/cli/commands/form_spec.rb +57 -0
  36. data/spec/unit/htty/cli/commands/fragment_clear_spec.rb +64 -0
  37. data/spec/unit/htty/cli/commands/fragment_set_spec.rb +73 -0
  38. data/spec/unit/htty/cli/commands/fragment_unset_spec.rb +72 -0
  39. data/spec/unit/htty/cli/commands/get_spec.rb +64 -0
  40. data/spec/unit/htty/cli/commands/header_set_spec.rb +64 -0
  41. data/spec/unit/htty/cli/commands/header_unset_spec.rb +64 -0
  42. data/spec/unit/htty/cli/commands/headers_clear_spec.rb +64 -0
  43. data/spec/unit/htty/cli/commands/headers_request_spec.rb +81 -0
  44. data/spec/unit/htty/cli/commands/headers_response_spec.rb +77 -0
  45. data/spec/unit/htty/cli/commands/headers_set_spec.rb +74 -0
  46. data/spec/unit/htty/cli/commands/headers_unset_all_spec.rb +71 -0
  47. data/spec/unit/htty/cli/commands/headers_unset_spec.rb +63 -0
  48. data/spec/unit/htty/cli/commands/help_spec.rb +67 -0
  49. data/spec/unit/htty/cli/commands/history_spec.rb +65 -0
  50. data/spec/unit/htty/cli/commands/history_verbose_spec.rb +72 -0
  51. data/spec/unit/htty/cli/commands/host_set_spec.rb +71 -0
  52. data/spec/unit/htty/cli/commands/http_delete_spec.rb +73 -0
  53. data/spec/unit/htty/cli/commands/http_get_spec.rb +75 -0
  54. data/spec/unit/htty/cli/commands/http_head_spec.rb +69 -0
  55. data/spec/unit/htty/cli/commands/http_options_spec.rb +69 -0
  56. data/spec/unit/htty/cli/commands/http_post_spec.rb +71 -0
  57. data/spec/unit/htty/cli/commands/http_put_spec.rb +69 -0
  58. data/spec/unit/htty/cli/commands/http_trace_spec.rb +69 -0
  59. data/spec/unit/htty/cli/commands/path_set_spec.rb +72 -0
  60. data/spec/unit/htty/cli/commands/port_set_spec.rb +73 -0
  61. data/spec/unit/htty/cli/commands/post_spec.rb +64 -0
  62. data/spec/unit/htty/cli/commands/put_spec.rb +64 -0
  63. data/spec/unit/htty/cli/commands/query_add_spec.rb +67 -36
  64. data/spec/unit/htty/cli/commands/query_clear_spec.rb +64 -0
  65. data/spec/unit/htty/cli/commands/query_remove_spec.rb +69 -24
  66. data/spec/unit/htty/cli/commands/query_set_spec.rb +59 -49
  67. data/spec/unit/htty/cli/commands/query_unset_all_spec.rb +73 -0
  68. data/spec/unit/htty/cli/commands/query_unset_spec.rb +75 -0
  69. data/spec/unit/htty/cli/commands/quit_spec.rb +64 -0
  70. data/spec/unit/htty/cli/commands/reuse_spec.rb +72 -0
  71. data/spec/unit/htty/cli/commands/scheme_set_spec.rb +74 -0
  72. data/spec/unit/htty/cli/commands/ssl_verification_off_spec.rb +67 -0
  73. data/spec/unit/htty/cli/commands/ssl_verification_on_spec.rb +60 -0
  74. data/spec/unit/htty/cli/commands/ssl_verification_spec.rb +65 -0
  75. data/spec/unit/htty/cli/commands/status_spec.rb +73 -0
  76. data/spec/unit/htty/cli/commands/undo_spec.rb +57 -0
  77. data/spec/unit/htty/cli/commands/userinfo_clear_spec.rb +64 -0
  78. data/spec/unit/htty/cli/commands/userinfo_set_spec.rb +75 -0
  79. data/spec/unit/htty/cli/commands/userinfo_unset_spec.rb +72 -0
  80. data/spec/unit/htty/cli_spec.rb +8 -2
  81. data/spec/unit/htty/ordered_hash_spec.rb +14 -24
  82. data/spec/unit/htty/preferences_spec.rb +1 -1
  83. data/spec/unit/htty/request_spec.rb +454 -463
  84. metadata +80 -20
@@ -0,0 +1,76 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_add")
4
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_remove")
5
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_remove_all")
6
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_use")
7
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/headers_request")
8
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/headers_response")
9
+
10
+ describe HTTY::CLI::Commands::Cookies do
11
+ describe 'class' do
12
+ let :klass do
13
+ subject.class
14
+ end
15
+
16
+ it 'should be an alias_for the expected command' do
17
+ klass.alias_for.should == nil
18
+ end
19
+
20
+ it 'should have the expected aliases' do
21
+ klass.aliases.should == []
22
+ end
23
+
24
+ it 'should belong to the expected category' do
25
+ klass.category.should == 'Building Requests'
26
+ end
27
+
28
+ it 'should have the expected command_line' do
29
+ klass.command_line.should == 'cookies'
30
+ end
31
+
32
+ it 'should have the expected command_line_arguments' do
33
+ klass.command_line_arguments.should == nil
34
+ end
35
+
36
+ it 'should have the expected help' do
37
+ klass.help.should == 'Displays the cookies of the request'
38
+ end
39
+
40
+ it 'should have the expected help_extended' do
41
+ expected = <<-end_help_extended
42
+ Displays the cookies used for the request. Does not communicate with the host.
43
+
44
+ This command displays cookies extracted from the request's 'Cookie' header, which is nevertheless shown when you type \e[1mheaders-req[uest]\e[0m.
45
+
46
+ Cookies are not required to have unique names. You can add multiple cookies with the same name, and they will be removed in last-in-first-out order.
47
+
48
+ Cookies are cleared automatically when you change hosts.
49
+ end_help_extended
50
+ klass.help_extended.should == expected.chomp
51
+ end
52
+
53
+ it 'should have the expected see_also_commands' do
54
+ klass.see_also_commands.should == [HTTY::CLI::Commands::CookiesAdd,
55
+ HTTY::CLI::Commands::CookiesRemove,
56
+ HTTY::CLI::Commands::CookiesRemoveAll,
57
+ HTTY::CLI::Commands::CookiesUse,
58
+ HTTY::CLI::Commands::HeadersRequest,
59
+ HTTY::CLI::Commands::HeadersResponse]
60
+ end
61
+
62
+ describe 'build_for' do
63
+ it 'should correctly handle a valid, unabbreviated command line' do
64
+ built = klass.build_for('cookies', :session => :the_session)
65
+ built.should be_instance_of(klass)
66
+ built.arguments.should == []
67
+ built.session.should == :the_session
68
+ end
69
+
70
+ it 'should correctly handle a command line with a bad command' do
71
+ built = klass.build_for('x', :session => :another_session)
72
+ built.should == nil
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,75 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_add")
4
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_remove")
5
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_remove_all")
6
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/cookies_use")
7
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/headers_response")
8
+
9
+ describe HTTY::CLI::Commands::CookiesUse do
10
+ describe 'class' do
11
+ let :klass do
12
+ subject.class
13
+ end
14
+
15
+ it 'should be an alias_for the expected command' do
16
+ klass.alias_for.should == nil
17
+ end
18
+
19
+ it 'should have the expected aliases' do
20
+ klass.aliases.should == []
21
+ end
22
+
23
+ it 'should belong to the expected category' do
24
+ klass.category.should == 'Building Requests'
25
+ end
26
+
27
+ it 'should have the expected command_line' do
28
+ klass.command_line.should == 'cookies-u[se]'
29
+ end
30
+
31
+ it 'should have the expected command_line_arguments' do
32
+ klass.command_line_arguments.should == nil
33
+ end
34
+
35
+ it 'should have the expected help' do
36
+ klass.help.should == 'Uses cookies offered in the response'
37
+ end
38
+
39
+ it 'should have the expected help_extended' do
40
+ klass.help_extended.should == 'Sets the cookies of the request to the ' +
41
+ 'cookies offered in the response (the ' +
42
+ "'Set-Cookie' header). Does not " +
43
+ 'communicate with the host.'
44
+ end
45
+
46
+ it 'should have the expected see_also_commands' do
47
+ klass.see_also_commands.should == [HTTY::CLI::Commands::Cookies,
48
+ HTTY::CLI::Commands::CookiesAdd,
49
+ HTTY::CLI::Commands::CookiesRemove,
50
+ HTTY::CLI::Commands::CookiesRemoveAll,
51
+ HTTY::CLI::Commands::HeadersResponse]
52
+ end
53
+
54
+ describe 'build_for' do
55
+ it 'should correctly handle a valid, unabbreviated command line' do
56
+ built = klass.build_for('cookies-use', :session => :the_session)
57
+ built.should be_instance_of(klass)
58
+ built.arguments.should == []
59
+ built.session.should == :the_session
60
+ end
61
+
62
+ it 'should correctly handle a valid, abbreviated command line' do
63
+ built = klass.build_for('cookies-u', :session => :a_session)
64
+ built.should be_instance_of(klass)
65
+ built.arguments.should == []
66
+ built.session.should == :a_session
67
+ end
68
+
69
+ it 'should correctly handle a command line with a bad command' do
70
+ built = klass.build_for('x', :session => :another_session)
71
+ built.should == nil
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/delete")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/http_delete")
4
+
5
+ describe HTTY::CLI::Commands::Delete do
6
+ describe 'class' do
7
+ let :klass do
8
+ subject.class
9
+ end
10
+
11
+ it 'should be an alias_for the expected command' do
12
+ klass.alias_for.should == HTTY::CLI::Commands::HttpDelete
13
+ end
14
+
15
+ it 'should have the expected aliases' do
16
+ klass.aliases.should == []
17
+ end
18
+
19
+ it 'should belong to the expected category' do
20
+ klass.category.should == 'Issuing Requests'
21
+ end
22
+
23
+ it 'should have the expected command_line' do
24
+ klass.command_line.should == 'd[elete]'
25
+ end
26
+
27
+ it 'should have the expected command_line_arguments' do
28
+ klass.command_line_arguments.should == nil
29
+ end
30
+
31
+ it 'should have the expected help' do
32
+ klass.help.should == "Alias for \e[1mhttp-d[elete]\e[0m"
33
+ end
34
+
35
+ it 'should have the expected help_extended' do
36
+ klass.help_extended.should == "Alias for \e[1mhttp-d[elete]\e[0m."
37
+ end
38
+
39
+ it 'should have the expected see_also_commands' do
40
+ klass.see_also_commands.should == [HTTY::CLI::Commands::HttpDelete]
41
+ end
42
+
43
+ describe 'build_for' do
44
+ it 'should correctly handle a valid, unabbreviated command line' do
45
+ built = klass.build_for('delete', :session => :the_session)
46
+ built.should be_instance_of(klass)
47
+ built.arguments.should == []
48
+ built.session.should == :the_session
49
+ end
50
+
51
+ it 'should correctly handle a valid, abbreviated command line' do
52
+ built = klass.build_for('d', :session => :a_session)
53
+ built.should be_instance_of(klass)
54
+ built.arguments.should == []
55
+ built.session.should == :a_session
56
+ end
57
+
58
+ it 'should correctly handle a command line with a bad command' do
59
+ built = klass.build_for('x', :session => :another_session)
60
+ built.should == nil
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/exit")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/quit")
4
+
5
+ describe HTTY::CLI::Commands::Exit do
6
+ describe 'class' do
7
+ let :klass do
8
+ subject.class
9
+ end
10
+
11
+ it 'should be an alias_for the expected command' do
12
+ klass.alias_for.should == HTTY::CLI::Commands::Quit
13
+ end
14
+
15
+ it 'should have the expected aliases' do
16
+ klass.aliases.should == []
17
+ end
18
+
19
+ it 'should belong to the expected category' do
20
+ klass.category.should == nil
21
+ end
22
+
23
+ it 'should have the expected command_line' do
24
+ klass.command_line.should == 'e[xit]'
25
+ end
26
+
27
+ it 'should have the expected command_line_arguments' do
28
+ klass.command_line_arguments.should == nil
29
+ end
30
+
31
+ it 'should have the expected help' do
32
+ klass.help.should == "Alias for \e[1mqui[t]\e[0m"
33
+ end
34
+
35
+ it 'should have the expected help_extended' do
36
+ klass.help_extended.should == "Alias for \e[1mqui[t]\e[0m."
37
+ end
38
+
39
+ it 'should have the expected see_also_commands' do
40
+ klass.see_also_commands.should == [HTTY::CLI::Commands::Quit]
41
+ end
42
+
43
+ describe 'build_for' do
44
+ it 'should correctly handle a valid, unabbreviated command line' do
45
+ built = klass.build_for('exit', :session => :the_session)
46
+ built.should be_instance_of(klass)
47
+ built.arguments.should == []
48
+ built.session.should == :the_session
49
+ end
50
+
51
+ it 'should correctly handle a valid, abbreviated command line' do
52
+ built = klass.build_for('e', :session => :a_session)
53
+ built.should be_instance_of(klass)
54
+ built.arguments.should == []
55
+ built.session.should == :a_session
56
+ end
57
+
58
+ it 'should correctly handle a command line with a bad command' do
59
+ built = klass.build_for('x', :session => :another_session)
60
+ built.should == nil
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,70 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/address")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/follow")
4
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/http_get")
5
+
6
+ describe HTTY::CLI::Commands::Follow do
7
+ describe 'class' do
8
+ let :klass do
9
+ subject.class
10
+ end
11
+
12
+ it 'should be an alias_for the expected command' do
13
+ klass.alias_for.should == nil
14
+ end
15
+
16
+ it 'should have the expected aliases' do
17
+ klass.aliases.should == []
18
+ end
19
+
20
+ it 'should belong to the expected category' do
21
+ klass.category.should == 'Navigation'
22
+ end
23
+
24
+ it 'should have the expected command_line' do
25
+ klass.command_line.should == 'fol[low]'
26
+ end
27
+
28
+ it 'should have the expected command_line_arguments' do
29
+ klass.command_line_arguments.should == nil
30
+ end
31
+
32
+ it 'should have the expected help' do
33
+ klass.help.should == 'Changes the address of the request to the value ' +
34
+ "of the response's 'Location' header"
35
+ end
36
+
37
+ it 'should have the expected help_extended' do
38
+ klass.help_extended.should == 'Changes the address of the request to ' +
39
+ "the value of the response's 'Location' " +
40
+ 'header. Does not communicate with the ' +
41
+ 'host.'
42
+ end
43
+
44
+ it 'should have the expected see_also_commands' do
45
+ klass.see_also_commands.should == [HTTY::CLI::Commands::Address,
46
+ HTTY::CLI::Commands::HttpGet]
47
+ end
48
+
49
+ describe 'build_for' do
50
+ it 'should correctly handle a valid, unabbreviated command line' do
51
+ built = klass.build_for('follow', :session => :the_session)
52
+ built.should be_instance_of(klass)
53
+ built.arguments.should == []
54
+ built.session.should == :the_session
55
+ end
56
+
57
+ it 'should correctly handle a valid, abbreviated command line' do
58
+ built = klass.build_for('fol', :session => :a_session)
59
+ built.should be_instance_of(klass)
60
+ built.arguments.should == []
61
+ built.session.should == :a_session
62
+ end
63
+
64
+ it 'should correctly handle a command line with a bad command' do
65
+ built = klass.build_for('x', :session => :another_session)
66
+ built.should == nil
67
+ end
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/form_add")
3
+
4
+ describe HTTY::CLI::Commands::FormAdd do
5
+ describe 'class' do
6
+ let :klass do
7
+ subject.class
8
+ end
9
+
10
+ it 'should be an alias_for the expected command' do
11
+ klass.alias_for.should == nil
12
+ end
13
+
14
+ it 'should have the expected aliases' do
15
+ klass.aliases.should == []
16
+ end
17
+
18
+ it 'should belong to the expected category' do
19
+ klass.category.should == 'Building Requests'
20
+ end
21
+
22
+ it 'should have the expected command_line' do
23
+ klass.command_line.should == 'form-a[dd]'
24
+ end
25
+
26
+ it 'should have the expected command_line_arguments' do
27
+ klass.command_line_arguments.should == nil
28
+ end
29
+
30
+ it 'should have the expected help' do
31
+ klass.help.should == "(Help for \e[1mform-a[dd]\e[0m is not available)"
32
+ end
33
+
34
+ it 'should have the expected help_extended' do
35
+ klass.help_extended.should == "(Help for \e[1mform-a[dd]\e[0m is not " +
36
+ 'available).'
37
+ end
38
+
39
+ it 'should have the expected see_also_commands' do
40
+ klass.see_also_commands.should == []
41
+ end
42
+
43
+ describe 'build_for' do
44
+ it 'should correctly handle a valid, unabbreviated command line' do
45
+ built = klass.build_for('form-add', :session => :the_session)
46
+ built.should be_instance_of(klass)
47
+ built.arguments.should == []
48
+ built.session.should == :the_session
49
+ end
50
+
51
+ it 'should correctly handle a valid, abbreviated command line' do
52
+ built = klass.build_for('form-a', :session => :a_session)
53
+ built.should be_instance_of(klass)
54
+ built.arguments.should == []
55
+ built.session.should == :a_session
56
+ end
57
+
58
+ it 'should correctly handle a command line with a bad command' do
59
+ built = klass.build_for('x', :session => :another_session)
60
+ built.should == nil
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,64 @@
1
+ require 'rspec'
2
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/form_clear")
3
+ require File.expand_path("#{File.dirname __FILE__}/../../../../../lib/htty/cli/commands/form_remove_all")
4
+
5
+ describe HTTY::CLI::Commands::FormClear do
6
+ describe 'class' do
7
+ let :klass do
8
+ subject.class
9
+ end
10
+
11
+ it 'should be an alias_for the expected command' do
12
+ klass.alias_for.should == HTTY::CLI::Commands::FormRemoveAll
13
+ end
14
+
15
+ it 'should have the expected aliases' do
16
+ klass.aliases.should == []
17
+ end
18
+
19
+ it 'should belong to the expected category' do
20
+ klass.category.should == 'Building Requests'
21
+ end
22
+
23
+ it 'should have the expected command_line' do
24
+ klass.command_line.should == 'form-c[lear]'
25
+ end
26
+
27
+ it 'should have the expected command_line_arguments' do
28
+ klass.command_line_arguments.should == nil
29
+ end
30
+
31
+ it 'should have the expected help' do
32
+ klass.help.should == "Alias for \e[1mform-remove-[all]\e[0m"
33
+ end
34
+
35
+ it 'should have the expected help_extended' do
36
+ klass.help_extended.should == "Alias for \e[1mform-remove-[all]\e[0m."
37
+ end
38
+
39
+ it 'should have the expected see_also_commands' do
40
+ klass.see_also_commands.should == [HTTY::CLI::Commands::FormRemoveAll]
41
+ end
42
+
43
+ describe 'build_for' do
44
+ it 'should correctly handle a valid, unabbreviated command line' do
45
+ built = klass.build_for('form-clear', :session => :the_session)
46
+ built.should be_instance_of(klass)
47
+ built.arguments.should == []
48
+ built.session.should == :the_session
49
+ end
50
+
51
+ it 'should correctly handle a valid, abbreviated command line' do
52
+ built = klass.build_for('form-c', :session => :a_session)
53
+ built.should be_instance_of(klass)
54
+ built.arguments.should == []
55
+ built.session.should == :a_session
56
+ end
57
+
58
+ it 'should correctly handle a command line with a bad command' do
59
+ built = klass.build_for('x', :session => :another_session)
60
+ built.should == nil
61
+ end
62
+ end
63
+ end
64
+ end