Skip to content

Commit 54395e3

Browse files
committed
Use a part subject to describe #add_part
1 parent 9d007a8 commit 54395e3

File tree

1 file changed

+35
-19
lines changed

1 file changed

+35
-19
lines changed

spec/lib/rex/mime/message_spec.rb

Lines changed: 35 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -275,44 +275,60 @@
275275
end
276276

277277
describe "#add_part" do
278+
subject(:part) do
279+
described_class.new.add_part(*args)
280+
end
281+
282+
let(:args) { [] }
283+
278284
it "returns the new part" do
279-
expect(subject.add_part).to be_a(Rex::MIME::Part)
285+
expect(part).to be_a(Rex::MIME::Part)
280286
end
281287

282-
it "sets Content-Type to text/plain by default" do
283-
part = subject.add_part
288+
it "set part's Content-Type to text/plain by default" do
284289
expect(part.header.find('Content-Type')[1]).to eq('text/plain')
285290
end
286291

287-
it "sets Content-Transfer-Encoding to 8bit by default" do
288-
part = subject.add_part
292+
it "set part's Content-Transfer-Encoding to 8bit by default" do
289293
expect(part.header.find('Content-Transfer-Encoding')[1]).to eq('8bit')
290294
end
291295

292-
it "doesn't set Content-Disposition by default" do
293-
part = subject.add_part
296+
it "doesn't set part's Content-Disposition by default" do
294297
expect(part.header.find('Content-Disposition')).to be_nil
295298
end
296299

297-
it "allows to set up Content-Type" do
298-
part = subject.add_part('', 'application/pdf')
299-
expect(part.header.find('Content-Type')[1]).to eq('application/pdf')
300+
context "with Content-Type argument" do
301+
let(:args) { ['', 'application/pdf'] }
302+
303+
it "creates a part Content-Type header" do
304+
expect(part.header.find('Content-Type')[1]).to eq('application/pdf')
305+
end
300306
end
301307

302-
it "allows to set up Content-Transfer-Encoding" do
303-
part = subject.add_part('', 'application/pdf', 'binary')
304-
expect(part.header.find('Content-Transfer-Encoding')[1]).to eq('binary')
308+
context "with Content-Transfer-Encoding argument" do
309+
let(:args) { ['', 'application/pdf', 'binary'] }
310+
311+
it "creates a part Content-Transfer-Encoding header" do
312+
expect(part.header.find('Content-Transfer-Encoding')[1]).to eq('binary')
313+
end
305314
end
306315

307-
it "allows to set up Content-Disposition" do
308-
part = subject.add_part('', 'application/pdf', 'binary', 'attachment; filename="fname.ext"')
309-
expect(part.header.find('Content-Disposition')[1]).to eq('attachment; filename="fname.ext"')
316+
context "with Content-Disposition argument" do
317+
let(:args) { ['', 'application/pdf', 'binary', 'attachment; filename="fname.ext"'] }
318+
319+
it "creates a part Content-Disposition header" do
320+
expect(part.header.find('Content-Disposition')[1]).to eq('attachment; filename="fname.ext"')
321+
end
310322
end
311323

312-
it "allows to set up content" do
313-
part = subject.add_part('msfdev')
314-
expect(part.content).to eq('msfdev')
324+
context "with content argument" do
325+
let(:args) { ['msfdev'] }
326+
327+
it "creates part content" do
328+
expect(part.content).to eq('msfdev')
329+
end
315330
end
331+
316332
end
317333

318334
describe "#add_part_attachment" do

0 commit comments

Comments
 (0)