Skip to content

Commit

Permalink
Add tests for location scenario reference
Browse files Browse the repository at this point in the history
  • Loading branch information
freak4pc committed Mar 11, 2021
1 parent a186ecd commit ccbb158
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 1 deletion.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

##### Enhancements

* Allow accessing a Launch Action's Simulated Location (`LocationScenarioReference`)
[freak4pc](https://github.com/freak4pc)
[#813](https://github.com/CocoaPods/Xcodeproj/pull/813)

* Add support for group options when using the sort command
[zanchee](https://github.com/Zanchee)
[imachumphries](https://github.com/imachumphries)
Expand Down
2 changes: 1 addition & 1 deletion lib/xcodeproj/scheme/location_scenario_reference.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ module Xcodeproj
class XCScheme
# This class wraps the LocationScenarioReference node of a .xcscheme XML file
#
# A LocationScenarioReference is a reference to a simulated GPS locatio associated
# A LocationScenarioReference is a reference to a simulated GPS location associated
# with a scheme's launch action
#
class LocationScenarioReference < XMLElementWrapper
Expand Down
72 changes: 72 additions & 0 deletions spec/scheme/location_scenario_reference_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
require File.expand_path('../../spec_helper', __FILE__)

module Xcodeproj
describe XCScheme::LocationScenarioReference do
describe 'Created from scratch' do
before do
@ref = Xcodeproj::XCScheme::LocationScenarioReference.new(nil)
end

it 'Creates an initial, quite empty XML node' do
@ref.xml_element.name.should == 'LocationScenarioReference'
@ref.xml_element.attributes.count.should == 2
@ref.xml_element.attributes['identifier'].should == ''
@ref.xml_element.attributes['referenceType'].should == '0'
end
end

describe 'Built-in Created from a XML node' do
before do
node = REXML::Element.new('LocationScenarioReference')
attributes = {
'identifier' => 'London, England',
'referenceType' => '1',
}
node.add_attributes(attributes)
@ref = Xcodeproj::XCScheme::LocationScenarioReference.new(node)
end

it 'raise if invalid XML node' do
node = REXML::Element.new('Foo')
should.raise(Informative) do
Xcodeproj::XCScheme::LocationScenarioReference.new(node)
end.message.should.match /Wrong XML tag name/
end

it '#identifier' do
@ref.identifier.should == @ref.xml_element.attributes['identifier']
end

it '#reference_type' do
@ref.reference_type.should == @ref.xml_element.attributes['referenceType']
end
end

describe 'Custom GPX Created from a XML node' do
before do
node = REXML::Element.new('LocationScenarioReference')
attributes = {
'identifier' => 'path/to/AmazingLocation.gpx',
'referenceType' => '0',
}
node.add_attributes(attributes)
@ref = Xcodeproj::XCScheme::LocationScenarioReference.new(node)
end

it 'raise if invalid XML node' do
node = REXML::Element.new('Foo')
should.raise(Informative) do
Xcodeproj::XCScheme::LocationScenarioReference.new(node)
end.message.should.match /Wrong XML tag name/
end

it '#identifier' do
@ref.identifier.should == @ref.xml_element.attributes['identifier']
end

it '#reference_type' do
@ref.reference_type.should == @ref.xml_element.attributes['referenceType']
end
end
end
end

0 comments on commit ccbb158

Please sign in to comment.