Commit 2659252f authored by Kyle Fuller's avatar Kyle Fuller

[linter] Refactor URL validation tests

parent dfbacc75
require File.expand_path('../../spec_helper', __FILE__)
require 'webmock'
module Bacon
class Context
......@@ -86,8 +87,7 @@ module Pod
file = write_podspec(stub_podspec)
validator = Validator.new(file)
validator.quick = true
validator.stubs(:validate_homepage)
validator.stubs(:validate_screenshots)
validator.stubs(:validate_url)
validator.validate
validator.validation_dir.should.be == Pathname.new("/private/tmp/CocoaPods/Lint")
end
......@@ -97,9 +97,7 @@ module Pod
describe "Extensive analysis" do
describe "Homepage validation" do
require 'webmock'
describe "URL validation" do
before do
@sut = Validator.new(podspec_path)
@sut.stubs(:install_pod)
......@@ -108,6 +106,7 @@ module Pod
@sut.stubs(:tear_down_validation_environment)
end
describe "Homepage validation" do
it "checks if the homepage is valid" do
WebMock::API.stub_request(:head, /not-found/).to_return(:status => 404)
WebMock::API.stub_request(:get, /not-found/).to_return(:status => 404)
......@@ -172,14 +171,7 @@ module Pod
end
describe "Screenshot validation" do
require 'webmock'
before do
@sut = Validator.new(podspec_path)
@sut.stubs(:install_pod)
@sut.stubs(:build_pod)
@sut.stubs(:check_file_patterns)
@sut.stubs(:tear_down_validation_environment)
@sut.stubs(:validate_homepage)
WebMock::API.stub_request(:head, 'banana-corp.local/valid-image.png').to_return(:status => 200, :headers => { 'Content-Type' => 'image/png' })
end
......@@ -197,12 +189,12 @@ module Pod
@sut.results.map(&:to_s).first.should.match /The screenshot .* is not a valid image/
end
end
end
it "respects the no clean option" do
file = write_podspec(stub_podspec)
sut = Validator.new(file)
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
sut.no_clean = true
sut.validate
sut.validation_dir.should.exist
......@@ -211,8 +203,7 @@ module Pod
it "builds the pod per platform" do
file = write_podspec(stub_podspec)
sut = Validator.new(file)
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
sut.expects(:install_pod).twice
sut.expects(:build_pod).twice
sut.expects(:check_file_patterns).twice
......@@ -221,7 +212,7 @@ module Pod
it "uses the deployment target of the specification" do
sut = Validator.new(podspec_path)
sut.stubs(:validate_homepage)
sut.stubs(:validate_url)
sut.stubs(:validate_screenshots)
podfile = sut.send(:podfile_from_spec, :ios, '5.0')
dependency = podfile.target_definitions['Pods'].dependencies.first
......@@ -230,8 +221,7 @@ module Pod
it "respects the local option" do
sut = Validator.new(podspec_path)
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
podfile = sut.send(:podfile_from_spec, :ios, '5.0')
deployment_target = podfile.target_definitions['Pods'].platform.deployment_target
deployment_target.to_s.should == "5.0"
......@@ -241,8 +231,7 @@ module Pod
sut = Validator.new(podspec_path)
sut.stubs(:check_file_patterns)
sut.stubs(:xcodebuild).returns("file.m:1:1: warning: direct access to objective-c's isa is deprecated")
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
sut.validate
first = sut.results.map(&:to_s).first
first.should.include "[xcodebuild]"
......@@ -253,8 +242,7 @@ module Pod
file = write_podspec(stub_podspec(/s\.source_files = 'JSONKit\.\*'/, "s.source_files = 'wrong_paht.*'"))
sut = Validator.new(file)
sut.stubs(:build_pod)
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
sut.validate
sut.results.map(&:to_s).first.should.match /source_files.*did not match/
sut.result_type.should == :error
......@@ -268,8 +256,7 @@ module Pod
spec = Specification.from_file(file)
sut = Validator.new(spec)
sut.stubs(:validate_homepage)
sut.stubs(:validate_screenshots)
sut.stubs(:validate_url)
sut.stubs(:build_pod)
sut.validate
sut.validated?.should.be.true
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment