Convert a spec to an explicit subject and lets.

This commit is contained in:
Don Petersen 2014-03-10 20:54:22 +00:00
parent cb918e2dd1
commit fd6ea19652

View file

@ -2,72 +2,47 @@ require "spec_helper"
require "microformats2/absolute_uri"
describe Microformats2::AbsoluteUri do
let(:subject) { Microformats2::AbsoluteUri }
describe "#absolutize" do
subject { Microformats2::AbsoluteUri.new(base, relative).absolutize }
let(:base) { nil }
context "when relative is nil" do
it "returns nil" do
base = nil
relative = nil
expect(subject.new(base, relative).absolutize).to be_nil
end
let(:relative) { nil }
it { should be_nil }
end
context "when relative is an empty string" do
it "returns nil" do
base = nil
relative = ""
expect(subject.new(base, relative).absolutize).to be_nil
let(:relative) { "" }
it { should be_nil }
end
context "when relative is a valid absolute URI" do
let(:relative) { "http://google.com" }
it { should eq("http://google.com/") }
end
context "when relative is a valid non-absolute URI" do
let(:relative) { "bar/qux" }
context "and base is present but not absolute" do
let(:base) { "foo" }
it { should eq("bar/qux") }
end
context "and base is present and absolute" do
let(:base) { "http://google.com" }
it { should eq("http://google.com/bar/qux") }
end
context "and base is not present" do
let(:base) { nil }
it { should eq("bar/qux") }
end
end
context "when relative is a valid URI" do
context "and relative is absolute" do
it "returns normalized relative" do
base = nil
relative = "http://google.com"
result = "http://google.com/"
expect(subject.new(base, relative).absolutize).to eq result
end
end
context "and relative is not absolute" do
context "and base is present but not absolute" do
it "returns normalized relative" do
base = "foo"
relative = "bar/qux"
result = "bar/qux"
expect(subject.new(base, relative).absolutize).to eq result
end
end
context "and base is present and absolute" do
it "returns normalized base and relative joined" do
base = "http://google.com"
relative = "foo/bar"
result = "http://google.com/foo/bar"
expect(subject.new(base, relative).absolutize).to eq result
end
end
context "and base is not present" do
it "returns normalized relative" do
base = nil
relative = "foo/bar"
result = "foo/bar"
expect(subject.new(base, relative).absolutize).to eq result
end
end
end
end
context "when relative in an invliad URI" do
it "returns relative" do
base = nil
relative = "git@github.com:G5/microformats2.git"
result = "git@github.com:G5/microformats2.git"
expect(subject.new(base, relative).absolutize).to eq result
end
context "when relative is an invalid URI" do
let(:relative) { "git@github.com:G5/microformats2.git" }
it { should eq("git@github.com:G5/microformats2.git") }
end
end
end