ronin 2.0.0.beta1 → 2.0.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +72 -4
- data/data/new/project/Rakefile +3 -3
- data/data/new/project/project.rb.erb +1 -1
- data/gemspec.yml +12 -6
- data/lib/ronin/cli/char_set_options.rb +81 -68
- data/lib/ronin/cli/commands/dns.rb +3 -95
- data/lib/ronin/cli/commands/extract.rb +17 -7
- data/lib/ronin/cli/commands/grep.rb +17 -7
- data/lib/ronin/cli/commands/hexdump.rb +8 -2
- data/lib/ronin/cli/commands/host.rb +6 -88
- data/lib/ronin/cli/commands/http.rb +11 -11
- data/lib/ronin/cli/commands/public_suffix_list.rb +16 -2
- data/lib/ronin/cli/commands/tld_list.rb +16 -2
- data/lib/ronin/cli/dns.rb +136 -0
- data/lib/ronin/cli/pattern_options.rb +200 -85
- data/lib/ronin/cli.rb +5 -0
- data/lib/ronin/version.rb +1 -1
- data/man/ronin-extract.1 +52 -12
- data/man/ronin-extract.1.md +42 -12
- data/man/ronin-grep.1 +52 -12
- data/man/ronin-grep.1.md +42 -12
- data/man/ronin-http.1 +2 -2
- data/man/ronin-http.1.md +1 -1
- data/ronin.gemspec +2 -1
- metadata +15 -25
- data/spec/cli/command_spec.rb +0 -10
- data/spec/cli/commands/decode_spec.rb +0 -152
- data/spec/cli/commands/encode_spec.rb +0 -152
- data/spec/cli/commands/escape_spec.rb +0 -128
- data/spec/cli/commands/quote_spec.rb +0 -76
- data/spec/cli/commands/unescape_spec.rb +0 -128
- data/spec/cli/commands/unquote_spec.rb +0 -80
- data/spec/cli/fixtures/file.txt +0 -3
- data/spec/cli/fixtures/file2.txt +0 -3
- data/spec/cli/key_options_spec.rb +0 -56
- data/spec/cli/method_options_spec.rb +0 -71
- data/spec/cli/string_methods_command_spec.rb +0 -25
- data/spec/cli/string_processor_command_spec.rb +0 -258
- data/spec/cli/value_processor_command_spec.rb +0 -127
- data/spec/spec_helper.rb +0 -5
- data/spec/version_spec.rb +0 -11
@@ -1,128 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/commands/escape'
|
3
|
-
|
4
|
-
describe Ronin::CLI::Commands::Escape do
|
5
|
-
describe "options" do
|
6
|
-
before { subject.parse_options(argv) }
|
7
|
-
|
8
|
-
describe "--c" do
|
9
|
-
let(:argv) { %w[--c] }
|
10
|
-
|
11
|
-
it "must require 'ronin/support/encoding/c'" do
|
12
|
-
expect(require 'ronin/support/encoding/c').to be(false)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "must add :c_escape to #method_calls" do
|
16
|
-
expect(subject.method_calls.last).to eq(:c_escape)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "--hex" do
|
21
|
-
let(:argv) { %w[--hex] }
|
22
|
-
|
23
|
-
it "must require 'ronin/support/encoding/hex'" do
|
24
|
-
expect(require 'ronin/support/encoding/hex').to be(false)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "must add :hex_escape to #method_calls" do
|
28
|
-
expect(subject.method_calls.last).to eq(:hex_escape)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "--html" do
|
33
|
-
let(:argv) { %w[--html] }
|
34
|
-
|
35
|
-
it "must require 'ronin/support/encoding/html'" do
|
36
|
-
expect(require 'ronin/support/encoding/html').to be(false)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "must add :html_escape to #method_calls" do
|
40
|
-
expect(subject.method_calls.last).to eq(:html_escape)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "--uri" do
|
45
|
-
let(:argv) { %w[--uri] }
|
46
|
-
|
47
|
-
it "must require 'ronin/support/encoding/uri'" do
|
48
|
-
expect(require 'ronin/support/encoding/uri').to be(false)
|
49
|
-
end
|
50
|
-
|
51
|
-
it "must add :uri_escape to #method_calls" do
|
52
|
-
expect(subject.method_calls.last).to eq(:uri_escape)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "--http" do
|
57
|
-
let(:argv) { %w[--http] }
|
58
|
-
|
59
|
-
it "must require 'ronin/support/encoding/http'" do
|
60
|
-
expect(require 'ronin/support/encoding/http').to be(false)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "must add :http_escape to #method_calls" do
|
64
|
-
expect(subject.method_calls.last).to eq(:http_escape)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "--js" do
|
69
|
-
let(:argv) { %w[--js] }
|
70
|
-
|
71
|
-
it "must require 'ronin/support/encoding/js'" do
|
72
|
-
expect(require 'ronin/support/encoding/js').to be(false)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "must add :js_escape to #method_calls" do
|
76
|
-
expect(subject.method_calls.last).to eq(:js_escape)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "--shell" do
|
81
|
-
let(:argv) { %w[--shell] }
|
82
|
-
|
83
|
-
it "must require 'ronin/support/encoding/shell'" do
|
84
|
-
expect(require 'ronin/support/encoding/shell').to be(false)
|
85
|
-
end
|
86
|
-
|
87
|
-
it "must add :shell_escape to #method_calls" do
|
88
|
-
expect(subject.method_calls.last).to eq(:shell_escape)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "--powershell" do
|
93
|
-
let(:argv) { %w[--powershell] }
|
94
|
-
|
95
|
-
it "must require 'ronin/support/encoding/powershell'" do
|
96
|
-
expect(require 'ronin/support/encoding/powershell').to be(false)
|
97
|
-
end
|
98
|
-
|
99
|
-
it "must add :powershell_escape to #method_calls" do
|
100
|
-
expect(subject.method_calls.last).to eq(:powershell_escape)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe "--xml" do
|
105
|
-
let(:argv) { %w[--xml] }
|
106
|
-
|
107
|
-
it "must require 'ronin/support/encoding/xml'" do
|
108
|
-
expect(require 'ronin/support/encoding/xml').to be(false)
|
109
|
-
end
|
110
|
-
|
111
|
-
it "must add :xml_escape to #method_calls" do
|
112
|
-
expect(subject.method_calls.last).to eq(:xml_escape)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe "--ruby" do
|
117
|
-
let(:argv) { %w[--ruby] }
|
118
|
-
|
119
|
-
it "must require 'ronin/support/encoding/ruby'" do
|
120
|
-
expect(require 'ronin/support/encoding/ruby').to be(false)
|
121
|
-
end
|
122
|
-
|
123
|
-
it "must add :ruby_escape to #method_calls" do
|
124
|
-
expect(subject.method_calls.last).to eq(:ruby_escape)
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/commands/quote'
|
3
|
-
|
4
|
-
describe Ronin::CLI::Commands::Quote do
|
5
|
-
describe "options" do
|
6
|
-
before { subject.parse_options(argv) }
|
7
|
-
|
8
|
-
describe "--c" do
|
9
|
-
let(:argv) { %w[--c] }
|
10
|
-
|
11
|
-
it "must require 'ronin/support/encoding/c'" do
|
12
|
-
expect(require 'ronin/support/encoding/c').to be(false)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "must add :c_string to #method_calls" do
|
16
|
-
expect(subject.method_calls.last).to eq(:c_string)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "--hex" do
|
21
|
-
let(:argv) { %w[--hex] }
|
22
|
-
|
23
|
-
it "must require 'ronin/support/encoding/hex'" do
|
24
|
-
expect(require 'ronin/support/encoding/hex').to be(false)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "must add :hex_string to #method_calls" do
|
28
|
-
expect(subject.method_calls.last).to eq(:hex_string)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "--js" do
|
33
|
-
let(:argv) { %w[--js] }
|
34
|
-
|
35
|
-
it "must require 'ronin/support/encoding/js'" do
|
36
|
-
expect(require 'ronin/support/encoding/js').to be(false)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "must add :js_string to #method_calls" do
|
40
|
-
expect(subject.method_calls.last).to eq(:js_string)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "--shell" do
|
45
|
-
let(:argv) { %w[--shell] }
|
46
|
-
|
47
|
-
it "must require 'ronin/support/encoding/shell'" do
|
48
|
-
expect(require 'ronin/support/encoding/shell').to be(false)
|
49
|
-
end
|
50
|
-
|
51
|
-
it "must add :shell_string to #method_calls" do
|
52
|
-
expect(subject.method_calls.last).to eq(:shell_string)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "--powershell" do
|
57
|
-
let(:argv) { %w[--powershell] }
|
58
|
-
|
59
|
-
it "must require 'ronin/support/encoding/powershell'" do
|
60
|
-
expect(require 'ronin/support/encoding/powershell').to be(false)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "must add :powershell_string to #method_calls" do
|
64
|
-
expect(subject.method_calls.last).to eq(:powershell_string)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "--ruby" do
|
69
|
-
let(:argv) { %w[--ruby] }
|
70
|
-
|
71
|
-
it "must add :ruby_string to #method_calls" do
|
72
|
-
expect(subject.method_calls.last).to eq(:ruby_string)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
@@ -1,128 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/commands/unescape'
|
3
|
-
|
4
|
-
describe Ronin::CLI::Commands::Unescape do
|
5
|
-
describe "options" do
|
6
|
-
before { subject.parse_options(argv) }
|
7
|
-
|
8
|
-
describe "--c" do
|
9
|
-
let(:argv) { %w[--c] }
|
10
|
-
|
11
|
-
it "must require 'ronin/support/encoding/c'" do
|
12
|
-
expect(require 'ronin/support/encoding/c').to be(false)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "must add :c_unescape to #method_calls" do
|
16
|
-
expect(subject.method_calls.last).to eq(:c_unescape)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "--hex" do
|
21
|
-
let(:argv) { %w[--hex] }
|
22
|
-
|
23
|
-
it "must require 'ronin/support/encoding/hex'" do
|
24
|
-
expect(require 'ronin/support/encoding/hex').to be(false)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "must add :hex_unescape to #method_calls" do
|
28
|
-
expect(subject.method_calls.last).to eq(:hex_unescape)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "--html" do
|
33
|
-
let(:argv) { %w[--html] }
|
34
|
-
|
35
|
-
it "must require 'ronin/support/encoding/html'" do
|
36
|
-
expect(require 'ronin/support/encoding/html').to be(false)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "must add :html_unescape to #method_calls" do
|
40
|
-
expect(subject.method_calls.last).to eq(:html_unescape)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "--uri" do
|
45
|
-
let(:argv) { %w[--uri] }
|
46
|
-
|
47
|
-
it "must require 'ronin/support/encoding/uri'" do
|
48
|
-
expect(require 'ronin/support/encoding/uri').to be(false)
|
49
|
-
end
|
50
|
-
|
51
|
-
it "must add :uri_unescape to #method_calls" do
|
52
|
-
expect(subject.method_calls.last).to eq(:uri_unescape)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "--http" do
|
57
|
-
let(:argv) { %w[--http] }
|
58
|
-
|
59
|
-
it "must require 'ronin/support/encoding/http'" do
|
60
|
-
expect(require 'ronin/support/encoding/http').to be(false)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "must add :http_unescape to #method_calls" do
|
64
|
-
expect(subject.method_calls.last).to eq(:http_unescape)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "--js" do
|
69
|
-
let(:argv) { %w[--js] }
|
70
|
-
|
71
|
-
it "must require 'ronin/support/encoding/js'" do
|
72
|
-
expect(require 'ronin/support/encoding/js').to be(false)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "must add :js_unescape to #method_calls" do
|
76
|
-
expect(subject.method_calls.last).to eq(:js_unescape)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
describe "--shell" do
|
81
|
-
let(:argv) { %w[--shell] }
|
82
|
-
|
83
|
-
it "must require 'ronin/support/encoding/shell'" do
|
84
|
-
expect(require 'ronin/support/encoding/shell').to be(false)
|
85
|
-
end
|
86
|
-
|
87
|
-
it "must add :shell_unescape to #method_calls" do
|
88
|
-
expect(subject.method_calls.last).to eq(:shell_unescape)
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe "--powershell" do
|
93
|
-
let(:argv) { %w[--powershell] }
|
94
|
-
|
95
|
-
it "must require 'ronin/support/encoding/powershell'" do
|
96
|
-
expect(require 'ronin/support/encoding/powershell').to be(false)
|
97
|
-
end
|
98
|
-
|
99
|
-
it "must add :powershell_unescape to #method_calls" do
|
100
|
-
expect(subject.method_calls.last).to eq(:powershell_unescape)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
describe "--xml" do
|
105
|
-
let(:argv) { %w[--xml] }
|
106
|
-
|
107
|
-
it "must require 'ronin/support/encoding/xml'" do
|
108
|
-
expect(require 'ronin/support/encoding/xml').to be(false)
|
109
|
-
end
|
110
|
-
|
111
|
-
it "must add :xml_unescape to #method_calls" do
|
112
|
-
expect(subject.method_calls.last).to eq(:xml_unescape)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
describe "--ruby" do
|
117
|
-
let(:argv) { %w[--ruby] }
|
118
|
-
|
119
|
-
it "must require 'ronin/support/encoding/ruby'" do
|
120
|
-
expect(require 'ronin/support/encoding/ruby').to be(false)
|
121
|
-
end
|
122
|
-
|
123
|
-
it "must add :ruby_unescape to #method_calls" do
|
124
|
-
expect(subject.method_calls.last).to eq(:ruby_unescape)
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/commands/unquote'
|
3
|
-
|
4
|
-
describe Ronin::CLI::Commands::Unquote do
|
5
|
-
describe "options" do
|
6
|
-
before { subject.parse_options(argv) }
|
7
|
-
|
8
|
-
describe "--c" do
|
9
|
-
let(:argv) { %w[--c] }
|
10
|
-
|
11
|
-
it "must require 'ronin/support/encoding/c'" do
|
12
|
-
expect(require 'ronin/support/encoding/c').to be(false)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "must add :c_unquote to #method_calls" do
|
16
|
-
expect(subject.method_calls.last).to eq(:c_unquote)
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
describe "--hex" do
|
21
|
-
let(:argv) { %w[--hex] }
|
22
|
-
|
23
|
-
it "must require 'ronin/support/encoding/hex'" do
|
24
|
-
expect(require 'ronin/support/encoding/hex').to be(false)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "must add :hex_unquote to #method_calls" do
|
28
|
-
expect(subject.method_calls.last).to eq(:hex_unquote)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe "--js" do
|
33
|
-
let(:argv) { %w[--js] }
|
34
|
-
|
35
|
-
it "must require 'ronin/support/encoding/js'" do
|
36
|
-
expect(require 'ronin/support/encoding/js').to be(false)
|
37
|
-
end
|
38
|
-
|
39
|
-
it "must add :js_unquote to #method_calls" do
|
40
|
-
expect(subject.method_calls.last).to eq(:js_unquote)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
describe "--shell" do
|
45
|
-
let(:argv) { %w[--shell] }
|
46
|
-
|
47
|
-
it "must require 'ronin/support/encoding/shell'" do
|
48
|
-
expect(require 'ronin/support/encoding/shell').to be(false)
|
49
|
-
end
|
50
|
-
|
51
|
-
it "must add :shell_unquote to #method_calls" do
|
52
|
-
expect(subject.method_calls.last).to eq(:shell_unquote)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe "--powershell" do
|
57
|
-
let(:argv) { %w[--powershell] }
|
58
|
-
|
59
|
-
it "must require 'ronin/support/encoding/powershell'" do
|
60
|
-
expect(require 'ronin/support/encoding/powershell').to be(false)
|
61
|
-
end
|
62
|
-
|
63
|
-
it "must add :powershell_unquote to #method_calls" do
|
64
|
-
expect(subject.method_calls.last).to eq(:powershell_unquote)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
describe "--ruby" do
|
69
|
-
let(:argv) { %w[--ruby] }
|
70
|
-
|
71
|
-
it "must require 'ronin/support/encoding/ruby'" do
|
72
|
-
expect(require 'ronin/support/encoding/ruby').to be(false)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "must add :ruby_unquote to #method_calls" do
|
76
|
-
expect(subject.method_calls.last).to eq(:ruby_unquote)
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
data/spec/cli/fixtures/file.txt
DELETED
data/spec/cli/fixtures/file2.txt
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/key_options'
|
3
|
-
require 'ronin/cli/command'
|
4
|
-
|
5
|
-
describe Ronin::CLI::KeyOptions do
|
6
|
-
module TestKeyOptions
|
7
|
-
class TestCommand < Ronin::CLI::Command
|
8
|
-
include Ronin::CLI::KeyOptions
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
let(:test_class) { TestKeyOptions::TestCommand }
|
13
|
-
subject { test_class.new }
|
14
|
-
|
15
|
-
describe ".included" do
|
16
|
-
subject { test_class }
|
17
|
-
|
18
|
-
it "must define a --key option" do
|
19
|
-
expect(subject.options[:key]).to be_kind_of(CommandKit::Options::Option)
|
20
|
-
expect(subject.options[:key].short).to eq('-k')
|
21
|
-
expect(subject.options[:key].long).to eq('--key')
|
22
|
-
expect(subject.options[:key].desc).to eq("The key String")
|
23
|
-
end
|
24
|
-
|
25
|
-
it "must define a --key-file option" do
|
26
|
-
expect(subject.options[:key_file]).to be_kind_of(CommandKit::Options::Option)
|
27
|
-
expect(subject.options[:key_file].short).to eq('-K')
|
28
|
-
expect(subject.options[:key_file].long).to eq('--key-file')
|
29
|
-
expect(subject.options[:key_file].desc).to eq("The key file")
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe "options" do
|
34
|
-
before { subject.parse_options(argv) }
|
35
|
-
|
36
|
-
context "when the --key option is parsed" do
|
37
|
-
let(:key) { 'foo' }
|
38
|
-
let(:argv) { ['--key', key] }
|
39
|
-
|
40
|
-
it "must set #key to the given argument" do
|
41
|
-
expect(subject.key).to eq(key)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context "when the --key-file option is parsed" do
|
46
|
-
let(:fixtures_dir) { File.join(__dir__,'fixtures') }
|
47
|
-
let(:key_file) { File.join(fixtures_dir,'file.txt') }
|
48
|
-
|
49
|
-
let(:argv) { ['--key-file', key_file] }
|
50
|
-
|
51
|
-
it "must read the key file and set #key" do
|
52
|
-
expect(subject.key).to eq(File.binread(key_file))
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/method_options'
|
3
|
-
require 'ronin/cli/command'
|
4
|
-
|
5
|
-
describe Ronin::CLI::MethodOptions do
|
6
|
-
module TestMethodOptions
|
7
|
-
class TestCommand < Ronin::CLI::Command
|
8
|
-
include Ronin::CLI::MethodOptions
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
let(:test_class) { TestMethodOptions::TestCommand }
|
13
|
-
subject { test_class.new }
|
14
|
-
|
15
|
-
describe "#initialize" do
|
16
|
-
it "must initialize #methods_calls to an empty Array" do
|
17
|
-
expect(subject.method_calls).to eq([])
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
describe "#apply_method_options" do
|
22
|
-
let(:object) { 'hello world' }
|
23
|
-
|
24
|
-
before do
|
25
|
-
subject.method_calls << [:upcase]
|
26
|
-
subject.method_calls << [:reverse]
|
27
|
-
end
|
28
|
-
|
29
|
-
it "must apply all method options to the given String" do
|
30
|
-
expect(subject.apply_method_options(object)).to eq("DLROW OLLEH")
|
31
|
-
end
|
32
|
-
|
33
|
-
context "when #method_calls contains an entry with arguments" do
|
34
|
-
before do
|
35
|
-
subject.method_calls << [:slice, [0, 5]]
|
36
|
-
end
|
37
|
-
|
38
|
-
it "must call that method with the given arguments Array" do
|
39
|
-
expect(subject.apply_method_options(object)).to eq("DLROW")
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
context "when #method_calls contains a private method" do
|
44
|
-
let(:method_name) { :puts }
|
45
|
-
|
46
|
-
before do
|
47
|
-
subject.method_calls << [method_name, "shouldn't print this"]
|
48
|
-
end
|
49
|
-
|
50
|
-
it do
|
51
|
-
expect {
|
52
|
-
subject.apply_method_options(object)
|
53
|
-
}.to raise_error(ArgumentError,"cannot call method Object##{method_name} on object \"DLROW OLLEH\"")
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
context "when #method_calls contains a method inherited from Object" do
|
58
|
-
let(:method_name) { :instance_eval }
|
59
|
-
|
60
|
-
before do
|
61
|
-
subject.method_calls << [method_name, "1 + 1"]
|
62
|
-
end
|
63
|
-
|
64
|
-
it do
|
65
|
-
expect {
|
66
|
-
subject.apply_method_options(object)
|
67
|
-
}.to raise_error(ArgumentError,"cannot call method Object##{method_name} on object \"DLROW OLLEH\"")
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'ronin/cli/string_methods_command'
|
3
|
-
|
4
|
-
describe Ronin::CLI::StringMethodsCommand do
|
5
|
-
module TestStringMethodsCommand
|
6
|
-
class TestCommand < Ronin::CLI::StringMethodsCommand
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
let(:test_class) { TestStringMethodsCommand::TestCommand }
|
11
|
-
subject { test_class.new }
|
12
|
-
|
13
|
-
describe "#process_string" do
|
14
|
-
let(:string) { 'hello world' }
|
15
|
-
|
16
|
-
before do
|
17
|
-
subject.method_calls << [:upcase]
|
18
|
-
subject.method_calls << [:reverse]
|
19
|
-
end
|
20
|
-
|
21
|
-
it "must apply all method options to the given String" do
|
22
|
-
expect(subject.process_string(string)).to eq("DLROW OLLEH")
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|