Cucumber - Gooby Functional Tests

The following is the cucumber feature for testing Gooby functionality.

The test is invoked with command: cucumber features/gooby.feature

The matcher steps are implemented in ruby code.

Feature: Using Gooby
  In order to generate maps with Gooby
  From data recorded on a Garmin GPS device, or the MotionX app on an iPhone
  We get the raw GPS data recorded from the device
  then parse the raw GPS data into a "gooby standard" CSV format
  then generate Google HTML maps from the CSV files
  then generate Google Earth KML maps from the same CSV files
  then enjoy viewing the maps and seeing where we've been.

Scenario: Setup the environment and directories for the scenarios that follow
  Given GOOBY_HOME is set to '/Users/cjoakim/projects/github/cjoakim/gooby2'
  And   an empty csv directory within GOOBY_HOME
  And   an empty out directory within GOOBY_HOME
  And   an empty tmp directory within GOOBY_HOME
  And   an empty splits directory within GOOBY_HOME
  And   file 'gooby_davidson1.kmz' does not exist within GOOBY_HOME

Scenario: Generate the Gooby help content
  When  rake task 'gooby:help' is executed
  Then  the output contains 126 lines, within a tolerance of 2
  And   the following lines are expected
  And   line: Gooby = Google APIs + Ruby.  Copyright 2009 by Chris Joakim.
  And   line: Gooby is available under GNU General Public License (GPL) license.
  And   line: Version 2.0.0
  And   line: Directory Structure:
  And   line:   {GOOBY_HOME}              Your chosen directory on your computer in which to store Gooby files.
  And   line:                             You must set the "GOOBY_HOME" environment variable on your computer to this
  And   line:                             chosen directory name.
  And   line:   {GOOBY_HOME}/config       Contains configuration files in yaml format.
  And   line:                             File /config/gooby_config.yaml is the "base" configuration file, and is read first.
  And   line:                             This file typically remains unchanged after your intial edits to it.  Be sure to
  And   line:                             set "gmap_key" to your Google Maps key, and "gmap_icon_url_base" to the URL on
  And   line:                             your site where the map icon images are located.
  And   line:                             You should create one "map-specific" yaml file for each map you wish to create.
  And   line:                             It "inherits" all entries from the base configuration file, gooby_config.yaml.
  And   line:                             So just specify the additions or overrides in your map-specific yaml files.
  And   line:                             This design allows you generate your various maps, without having to frequently
  And   line:                             reset the values the the base configuration file.
  And   line:   {GOOBY_HOME}/csv          Gooby places CSV data files in this directory.  All Gooby parsers create a
  And   line:                             standard CSV format that you can use to generate either Google maps or Google Earth
  And   line:                             maps with.
  And   line:   {GOOBY_HOME}/data         You place data files from your desktop GPS software here.
  And   line:   {GOOBY_HOME}/out          Gooby places generated Google Map html files and Google Earth kml files here.
  And   line:   {GOOBY_HOME}/out/images   Standard set of images here which are used in the generated html & kml files.
  And   line:                             Add your own images here, or replace the existing ones, as necessary.
  And   line:   {GOOBY_HOME}/samples      Contains a set of sample files for your reference.
  And   line:   {GOOBY_HOME}/splits       Gooby places individual 'activity xml files' here, split-out from a large tcx file.
  And   line:   {GOOBY_HOME}/tmp          Temporary files.
  And   line: List of Gooby commands (in order of typical usage):
  And   line:   rake                                    # Default task; same as 'rake gooby:help'.
  And   line:   rake gooby:help                         # Display Gooby usage instructions.
  And   line:   rake gooby:extract_activities_from_tcx  # Extract individual Activity xml files from a Garmin tcx file
  And   line:   rake gooby:parse_activity_xml_to_csv    # Parse an extracted Activity xml file to a corresponding csv file.
  And   line:   rake gooby:parse_track_log_to_csv       # Parse a GPS Track Log file a corresponding csv file.
  And   line:   rake gooby:parse_gpx_to_csv             # Parse a *.gpx file into a corresponding csv file.
  And   line:   rake gooby:generate_google_map          # Generate a Google Map from a csv file.
  And   line:   rake gooby:generate_google_earth_map    # Generate a Google Earth kml file from a csv file, with optional
  And   line:                                             kmz file generation.
  And   line: Gooby Command Detail:
  And   line: command:     rake gooby:help
  And   line: description: Displays help information for each Gooby command.
  And   line: command:     rake gooby:extract_activities_from_tcx
  And   line: description: Splits the potentially huge Garmin Training Center tcx file into individual
  And   line:              Activity xml files, and places these in the /splits directory.  Each has a filename
  And   line:              based on the starting date/time of the activity.
  And   line: parameters:  tcx_file - The input file, created by exporting from Garmin Training Center.
  And   line:              Defaults to 'data/current.tcx' in your GOOBY_HOME directory.
  And   line: command:     rake gooby:parse_activity_xml_to_csv
  And   line: description: Parse an extracted Activity xml 'split' file to a corresponding csv file.
  And   line: example:     rake gooby:parse_activity_xml_to_csv config_file=config/big_sur_marathon.yaml
  And   line: command:     rake gooby:parse_gpx_to_csv
  And   line: description: Parse a *.gpx file into a corresponding csv file.
  And   line: example:     rake gooby:parse_gpx_to_csv config_file=config/ballantyne.yaml
  And   line: command:     rake gooby:parse_track_log_to_csv
  And   line: description: Parse an extracted 'GPS Tracks Log' file from MacGpsPro into csv format.
  And   line: note 2:      It is strongly recommended that you manually copy the 'GPS Tracks Log' file
  And   line:              from your MacGpsPro installation to the GOOBY_HOME/data directory, and rename it to
  And   line:              'gps_track_logs.txt', before running this command.  Then manually edit out the lines
  And   line:              not pertinent to the map you want to generate.
  And   line: note 3:      I use MacGpsPro to read the GPS data from my Garmin eTrex Venture device, since the
  And   line:              Garmin Training Center software does not support this device.
  And   line: example:     rake gooby:parse_track_log_to_csv config_file=config/crowders_mtn_hike.yaml
  And   line: command:     rake gooby:generate_google_map
  And   line: description: Generate a Google Map html file from a csv file.
  And   line: example:     rake gooby:generate_google_map config_file=config/big_sur_marathon.yaml
  And   line: command:     rake gooby:generate_google_earth_map
  And   line: description: Generate a Google Earth kml file from a csv file.
  And   line: note 2:      Gooby will optionally create a kmz file for you.  A kmz file is essentially a
  And   line:              zip file, which contains your kml file(s), as well as any associated files such
  And   line:              as images.  Two parameters are required in your yaml config file for kmz generation:
  And   line:              'kmz_build' must be set to true, and 'kmz_build_command' must be the appropriate
  And   line:              zip-creating command for your operating system and set of installed software.
  And   line:              A Mac OS/X example command is: zip -r gooby_big_sur.kmz .
  And   line: example:     rake gooby:generate_google_earth_map config_file=config/big_sur_marathon.yaml
  And   line: Your GOOBY_HOME directory is currently set to
  And   the output contains the expected lines 

Scenario: Split a large TCX file exported from Garmin Training Center
  Given we imported the data from our Garmin GPS device model 305 into Garmin Training Center
  And   exported the data from Garmin Training Center to a TCX file
  And   the TCX file is named 'data/current.tcx'

  When  rake task 'gooby:extract_activities_from_tcx' is executed
  Then  the splits directory contains at least 15 files matching name '2009'
  And   the splits directory contains at least 90 files matching name '2008'
  And   the splits directory contains at least 100 files matching name '2007'
  And   these activity xml files exist: 
  | file                                | lines |
  | splits/2008_04_27_13_49_50_tcx.xml  | 24560 |
  | splits/2009_01_01_14_45_00_tcx.xml  | 10630 |

Scenario: Parse an activity xml file to csv
  Given the config file we use is 'config/big_sur_marathon.yaml'
  When  rake task 'gooby:parse_activity_xml_to_csv' is executed
  Then  the CSV file 'csv/2008_04_27_13_49_50_tcx.csv' is created
  And   the CSV file contains 2449 trackpoints
  And   the CSV file contains these trackpoints:
  |  seq | time                 | latitude  |  longitude  | distance         | elapsed | mph   | pace |
  |    1 | 2008-04-27T13:49:50Z | 36.247196 | -121.781665 |  0.0             | 0:00:00 | 0.00  | 0:00 |
  | 1800 | 2008-04-27T15:50:22Z | 36.460703 | -121.924925 | 20.0004984569685 | 3:03:46 | 6.530 | 9:11.29 |
  | 2449 | 2008-04-27T17:09:28Z | 36.538656 | -121.91085  | 26.3666472682879 | 4:05:34 | 6.442 | 9:18.81 |

Scenario: Parse a track log file to csv
  Given the config file we use is 'config/crowders_mtn_hike.yaml'
  When  rake task 'gooby:parse_track_log_to_csv' is executed
  Then  the CSV file 'csv/crowders_mtn_hike.csv' is created
  And   the CSV file contains 1065 trackpoints
  And   the CSV file contains these trackpoints:
  |  seq | time                 | latitude |  longitude | distance           | elapsed | mph    | pace |
  |    1 | 2008-11-16T08:43:06Z | 35.21357 | -81.29359  | 0.0                | 0:00:00 | 0.00   | 0:00 |
  | 1065 | 2008-11-16T14:46:11Z | 35.26834 | -81.25154  | 15.0878648193097   | 6:03:05 | 2.493  | 24:03.88 |

Scenario: Parse a gpx file to csv
  Given the config file we use is 'config/ballantyne.yaml'
  When  rake task 'gooby:parse_gpx_to_csv' is executed
  Then  the CSV file 'csv/ballantyne.csv' is created
  And   the CSV file contains 27 trackpoints
  And   the CSV file contains these trackpoints:
  | seq | time                 | latitude  |  longitude | distance           | elapsed | mph   | pace |
  |   1 | 2009-05-14T22:08:50Z | 35.062748 | -80.85562  | 0.0                | 0:00:00 | 0.00  | 0:00 |
  |  27 | 2009-05-14T22:10:43Z | 35.062613 | -80.855448 | 0.0783970446562321 | 0:01:53 | 2.498 | 24:01.38 |

Scenario: Generate a Big Sur Marathon Google map in html format
  Given the config file we use is 'config/big_sur_marathon.yaml'
  When  rake task 'gooby:generate_google_map' is executed
  Then  the HTML file 'out/big_sur_marathon.html' is created
  And   the HTML file contains 2766 lines
  And   the following lines are expected
  And   line: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  And   line:   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  And   line: <html xmlns="http://www.w3.org/1999/xhtml">
  And   line: <head>
  And   line:   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  And   line:   <meta name="description" content="Google Map generated by Gooby version 2.0.0">
  And   line:   <meta name="keywords" content="Google Map Generated by Gooby version 2.0.0">
  And   line:   <title> Big Sur Marathon </title>
  And   line:   <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA
  And   line:   <script type="text/javascript">
  And   line: //<![CDATA[ 
  And   line:     function load() { 
  And   line:         if (GBrowserIsCompatible()) { 
  And   line:             var map = new GMap2(document.getElementById("map")); 
  And   line:             map.addControl(new GLargeMapControl());
  And   line:             map.addControl(new GMapTypeControl());
  And   line:             var centerPoint = new GLatLng(36.392926, -121.8600045);
  And   line:             map.setCenter(centerPoint, 11); 
  And   line:             var points = new Array(); 
  And   line:             points.push(new GLatLng(36.247196,-121.781665)); 
  And   line:             // points.push(new GLatLng(36.247208,-121.78167)); 
  And   line:             points.push(new GLatLng(36.538656,-121.91085)); 
  And   line:             // app_max=200.0  ratio=12.245  increment=12
  And   line:             var routePolyline = new GPolyline(points); 
  And   line:             map.addOverlay(routePolyline);   
  And   line:             // Create a base icon for all of our markers that specifies the 
  And   line:             // shadow, icon dimensions, etc.
  And   line:             var baseIcon = new GIcon();
  And   line:             baseIcon.shadow = "images/shadow50.png";
  And   line:             baseIcon.iconSize = new GSize(20, 34);
  And   line:             baseIcon.shadowSize = new GSize(37, 34);
  And   line:             baseIcon.iconAnchor = new GPoint(9, 34);
  And   line:             baseIcon.infoWindowAnchor = new GPoint(9, 2);
  And   line:             baseIcon.infoShadowAnchor = new GPoint(18, 25);
  And   line:             var iconStart = new GIcon(baseIcon); 
  And   line:             iconStart.image = "images/dd-start.png";
  And   line:             var pStart = new GPoint(-121.781665, 36.247196);
  And   line:             var mStart = new GMarker(pStart, iconStart);
  And   line:             GEvent.addListener(mStart, "click", function() { 
  And   line:                 mStart.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Start!</b>
  And   line:             map.addOverlay(mStart);
  And   line:             var icon1 = new GIcon(baseIcon); 
  And   line:             icon1.image = "images/marker1.png";
  And   line:             var p1 = new GPoint(-121.788872, 36.259338);
  And   line:             var m1 = new GMarker(p1, icon1);
  And   line:             GEvent.addListener(m1, "click", function() { 
  And   line:               m1.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 1</b>
  And   line:             map.addOverlay(m1);
  And   line:             var icon26 = new GIcon(baseIcon); 
  And   line:             icon26.image = "images/marker26.png";
  And   line:             var p26 = new GPoint(-121.914424, 36.534368);
  And   line:             var m26 = new GMarker(p26, icon26);
  And   line:             GEvent.addListener(m26, "click", function() { 
  And   line:               m26.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 26</b>
  And   line:             map.addOverlay(m26);
  And   line:             var iconFinish = new GIcon(baseIcon); 
  And   line:             iconFinish.image = "images/dd-end.png";
  And   line:             var pFinish = new GPoint(-121.91085, 36.538656);
  And   line:             var mFinish = new GMarker(pFinish, iconFinish);
  And   line:             GEvent.addListener(mFinish, "click", function() { 
  And   line:                 mFinish.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Finish!</b>
  And   line:             map.addOverlay(mFinish);
  And   line: </script>
  And   line: </head>
  And   line: <body onload="load()" onunload="GUnload()">
  And   line:   <center>
  And   line:   <h3> Big Sur Marathon </h3>
  And   line:   <div id="map" style="width: 1500px; height: 800px"></div>    
  And   line:   <div id="messages"></div>   
  And   line:   </center>
  And   line: </body>
  And   line: </html>
  And   the HTML contains the expected lines 

Scenario: Generate a Big Sur Marathon Google Earth map in kml format
  Given the config file we use is 'config/big_sur_marathon.yaml'
  When  rake task 'gooby:generate_google_earth_map' is executed
  Then  the KML file 'out/big_sur_marathon.kml' is created
  And   the KML file contains 685 lines
  And   the following lines are expected
  And   line: <?xml version="1.0" encoding="UTF-8"?>
  And   line: <kml xmlns="http://www.opengis.net/kml/2.2">
  And   line:   <Document>
  And   line:     <!-- kml file generated by Gooby version 2.0.0 -->
  And   line:     <name>Big Sur Marathon</name>
  And   line:     <Style id="goobyStyle">
  And   line:       <name>Start</name>
  And   line:       <description><table align='left'><tr><td colspan='2'><b>Start!</b>
  And   line:             <href>images/dd-start.png</href>
  And   line:         <coordinates>-121.781665,36.247196,1</coordinates>
  And   line:       <name>Finish</name>
  And   line:       <description><table align='left'><tr><td colspan='2'><b>Finish!</b>
  And   line:             <href>images/dd-end.png</href>
  And   line:         <coordinates>-121.91085,36.538656,1</coordinates>
  And   line:       <visibility>1</visibility>
  And   line:       <description>Route</description>
  And   line:       <styleUrl>#goobyStyle</styleUrl>
  And   line:       <LineString>
  And   line:         <tessellate>1</tessellate>
  And   line:         <altitudeMode>relativeToGround</altitudeMode>
  And   line:         <coordinates>
  And   line:           -121.781665,36.247196,1
  And   line:           -121.782714,36.248216,1
  And   line:           -121.784484,36.249009,1
  And   line:           -121.912713,36.536075,1
  And   line:           -121.911365,36.537773,1
  And   line:           -121.91085,36.538656,1
  And   line:         </coordinates>
  And   line:       </LineString>
  And   line:     </Placemark>
  And   line:   </Document>
  And   line: </kml>
  And   the KML contains the expected lines 

Scenario: Parse the Davidson 11-miler activity xml file to csv
  Given the config file we use is 'config/davidson1.yaml'
  When  rake task 'gooby:parse_activity_xml_to_csv' is executed
  Then  the CSV file 'csv/davidson1.csv' is created
  And   the CSV file contains 1060 trackpoints
  And   the CSV file contains these trackpoints:
  |  seq | time                 | latitude  |  longitude | distance         | elapsed | mph   | pace |
  |    1 | 2009-01-01T14:45:00Z | 35.495525 | -80.83215  |  0.0             | 0:00:00 | 0.00  | 0:00 |
  | 1060 | 2009-01-01T16:25:22Z | 35.495495 | -80.832109 | 11.0685814547597 | 1:40:22 | 6.617 | 9:04.06 |
  And   we edit CSV file 'csv/davidson1.csv' to contain only point number 1

Scenario: Generate a single-point Google map in html format
  Given the config file we use is 'config/davidson1.yaml'
  When  rake task 'gooby:generate_google_map' is executed
  Then  the HTML file 'out/davidson1.html' is created
  And   the HTML file contains 75 lines

Scenario: Generate a single-point Google Earth map in kmz format
  Given the config file we use is 'config/davidson1.yaml'
  When  rake task 'gooby:generate_google_earth_map' is executed
  Then  the KML file 'out/doc.kml' is created
  And   the KML file contains 49 lines
  Then  the KMZ file 'gooby_davidson1.kmz' is created

Scenario: Generate a Crowders Mt. Hike Google map in html format from Garmin eTrex Venture source data
  Given the config file we use is 'config/crowders_mtn_hike.yaml'
  When  rake task 'gooby:generate_google_map' is executed
  Then  the HTML file 'out/crowders_mtn_hike.html' is created
  And   the HTML file contains 1283 lines

Scenario: Generate a Google Earth map in kml format from iPhone & MotionX app source data
  Given the config file we use is 'config/ballantyne.yaml'
  When  rake task 'gooby:generate_google_earth_map' is executed
  Then  the KML file 'out/ballantyne.kml' is created
  And   the KML file contains 91 lines

Scenario: Save the generated files for packaging in the gooby gem
  Then  copy the generated files to the samples directory
	  
...and this is the output of the above test:
Feature: Using Gooby
  In order to generate maps with Gooby
  From data recorded on a Garmin GPS device, or the MotionX app on an iPhone
  We get the raw GPS data recorded from the device
  then parse the raw GPS data into a "gooby standard" CSV format
  then generate Google HTML maps from the CSV files
  then generate Google Earth KML maps from the same CSV files
  then enjoy viewing the maps and seeing where we've been.

  Scenario: Setup the environment and directories for the scenarios that follow # features/gooby.feature:10
    Given GOOBY_HOME is set to '/Users/cjoakim/projects/github/cjoakim/gooby2'  # features/steps/gooby_steps.rb:14
    And an empty csv directory within GOOBY_HOME                                # features/steps/gooby_steps.rb:36
    And an empty out directory within GOOBY_HOME                                # features/steps/gooby_steps.rb:36
    And an empty tmp directory within GOOBY_HOME                                # features/steps/gooby_steps.rb:36
    And an empty splits directory within GOOBY_HOME                             # features/steps/gooby_steps.rb:36
    And file 'gooby_davidson1.kmz' does not exist within GOOBY_HOME             # features/steps/gooby_steps.rb:42

  Scenario: Generate the Gooby help content                                                                                   # features/gooby.feature:18
    When rake task 'gooby:help' is executed                                                                                   # features/steps/gooby_steps.rb:50
    Then the output contains 126 lines, within a tolerance of 2                                                               # features/steps/gooby_steps.rb:117
    And the following lines are expected                                                                                      # features/steps/gooby_steps.rb:78
    And line: Gooby = Google APIs + Ruby.  Copyright 2009 by Chris Joakim.                                                    # features/steps/gooby_steps.rb:82
    And line: Gooby is available under GNU General Public License (GPL) license.                                              # features/steps/gooby_steps.rb:82
    And line: Version 2.0.0                                                                                                   # features/steps/gooby_steps.rb:82
    And line: Directory Structure:                                                                                            # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}              Your chosen directory on your computer in which to store Gooby files.               # features/steps/gooby_steps.rb:82
    And line:                             You must set the "GOOBY_HOME" environment variable on your computer to this         # features/steps/gooby_steps.rb:82
    And line:                             chosen directory name.                                                              # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/config       Contains configuration files in yaml format.                                        # features/steps/gooby_steps.rb:82
    And line:                             File /config/gooby_config.yaml is the "base" configuration file, and is read first. # features/steps/gooby_steps.rb:82
    And line:                             This file typically remains unchanged after your intial edits to it.  Be sure to    # features/steps/gooby_steps.rb:82
    And line:                             set "gmap_key" to your Google Maps key, and "gmap_icon_url_base" to the URL on      # features/steps/gooby_steps.rb:82
    And line:                             your site where the map icon images are located.                                    # features/steps/gooby_steps.rb:82
    And line:                             You should create one "map-specific" yaml file for each map you wish to create.     # features/steps/gooby_steps.rb:82
    And line:                             It "inherits" all entries from the base configuration file, gooby_config.yaml.      # features/steps/gooby_steps.rb:82
    And line:                             So just specify the additions or overrides in your map-specific yaml files.         # features/steps/gooby_steps.rb:82
    And line:                             This design allows you generate your various maps, without having to frequently     # features/steps/gooby_steps.rb:82
    And line:                             reset the values the the base configuration file.                                   # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/csv          Gooby places CSV data files in this directory.  All Gooby parsers create a          # features/steps/gooby_steps.rb:82
    And line:                             standard CSV format that you can use to generate either Google maps or Google Earth # features/steps/gooby_steps.rb:82
    And line:                             maps with.                                                                          # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/data         You place data files from your desktop GPS software here.                           # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/out          Gooby places generated Google Map html files and Google Earth kml files here.       # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/out/images   Standard set of images here which are used in the generated html & kml files.       # features/steps/gooby_steps.rb:82
    And line:                             Add your own images here, or replace the existing ones, as necessary.               # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/samples      Contains a set of sample files for your reference.                                  # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/splits       Gooby places individual 'activity xml files' here, split-out from a large tcx file. # features/steps/gooby_steps.rb:82
    And line:   {GOOBY_HOME}/tmp          Temporary files.                                                                    # features/steps/gooby_steps.rb:82
    And line: List of Gooby commands (in order of typical usage):                                                             # features/steps/gooby_steps.rb:82
    And line:   rake                                    # Default task; same as 'rake gooby:help'.                            # features/steps/gooby_steps.rb:82
    And line:   rake gooby:help                         # Display Gooby usage instructions.                                   # features/steps/gooby_steps.rb:82
    And line:   rake gooby:extract_activities_from_tcx  # Extract individual Activity xml files from a Garmin tcx file        # features/steps/gooby_steps.rb:82
    And line:   rake gooby:parse_activity_xml_to_csv    # Parse an extracted Activity xml file to a corresponding csv file.   # features/steps/gooby_steps.rb:82
    And line:   rake gooby:parse_track_log_to_csv       # Parse a GPS Track Log file a corresponding csv file.                # features/steps/gooby_steps.rb:82
    And line:   rake gooby:parse_gpx_to_csv             # Parse a *.gpx file into a corresponding csv file.                   # features/steps/gooby_steps.rb:82
    And line:   rake gooby:generate_google_map          # Generate a Google Map from a csv file.                              # features/steps/gooby_steps.rb:82
    And line:   rake gooby:generate_google_earth_map    # Generate a Google Earth kml file from a csv file, with optional     # features/steps/gooby_steps.rb:82
    And line:                                             kmz file generation.                                                # features/steps/gooby_steps.rb:82
    And line: Gooby Command Detail:                                                                                           # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:help                                                                                    # features/steps/gooby_steps.rb:82
    And line: description: Displays help information for each Gooby command.                                                  # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:extract_activities_from_tcx                                                             # features/steps/gooby_steps.rb:82
    And line: description: Splits the potentially huge Garmin Training Center tcx file into individual                        # features/steps/gooby_steps.rb:82
    And line:              Activity xml files, and places these in the /splits directory.  Each has a filename                # features/steps/gooby_steps.rb:82
    And line:              based on the starting date/time of the activity.                                                   # features/steps/gooby_steps.rb:82
    And line: parameters:  tcx_file - The input file, created by exporting from Garmin Training Center.                       # features/steps/gooby_steps.rb:82
    And line:              Defaults to 'data/current.tcx' in your GOOBY_HOME directory.                                       # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:parse_activity_xml_to_csv                                                               # features/steps/gooby_steps.rb:82
    And line: description: Parse an extracted Activity xml 'split' file to a corresponding csv file.                          # features/steps/gooby_steps.rb:82
    And line: example:     rake gooby:parse_activity_xml_to_csv config_file=config/big_sur_marathon.yaml                      # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:parse_gpx_to_csv                                                                        # features/steps/gooby_steps.rb:82
    And line: description: Parse a *.gpx file into a corresponding csv file.                                                  # features/steps/gooby_steps.rb:82
    And line: example:     rake gooby:parse_gpx_to_csv config_file=config/ballantyne.yaml                                     # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:parse_track_log_to_csv                                                                  # features/steps/gooby_steps.rb:82
    And line: description: Parse an extracted 'GPS Tracks Log' file from MacGpsPro into csv format.                           # features/steps/gooby_steps.rb:82
    And line: note 2:      It is strongly recommended that you manually copy the 'GPS Tracks Log' file                        # features/steps/gooby_steps.rb:82
    And line:              from your MacGpsPro installation to the GOOBY_HOME/data directory, and rename it to                # features/steps/gooby_steps.rb:82
    And line:              'gps_track_logs.txt', before running this command.  Then manually edit out the lines               # features/steps/gooby_steps.rb:82
    And line:              not pertinent to the map you want to generate.                                                     # features/steps/gooby_steps.rb:82
    And line: note 3:      I use MacGpsPro to read the GPS data from my Garmin eTrex Venture device, since the                # features/steps/gooby_steps.rb:82
    And line:              Garmin Training Center software does not support this device.                                      # features/steps/gooby_steps.rb:82
    And line: example:     rake gooby:parse_track_log_to_csv config_file=config/crowders_mtn_hike.yaml                        # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:generate_google_map                                                                     # features/steps/gooby_steps.rb:82
    And line: description: Generate a Google Map html file from a csv file.                                                   # features/steps/gooby_steps.rb:82
    And line: example:     rake gooby:generate_google_map config_file=config/big_sur_marathon.yaml                            # features/steps/gooby_steps.rb:82
    And line: command:     rake gooby:generate_google_earth_map                                                               # features/steps/gooby_steps.rb:82
    And line: description: Generate a Google Earth kml file from a csv file.                                                  # features/steps/gooby_steps.rb:82
    And line: note 2:      Gooby will optionally create a kmz file for you.  A kmz file is essentially a                      # features/steps/gooby_steps.rb:82
    And line:              zip file, which contains your kml file(s), as well as any associated files such                    # features/steps/gooby_steps.rb:82
    And line:              as images.  Two parameters are required in your yaml config file for kmz generation:               # features/steps/gooby_steps.rb:82
    And line:              'kmz_build' must be set to true, and 'kmz_build_command' must be the appropriate                   # features/steps/gooby_steps.rb:82
    And line:              zip-creating command for your operating system and set of installed software.                      # features/steps/gooby_steps.rb:82
    And line:              A Mac OS/X example command is: zip -r gooby_big_sur.kmz .                                          # features/steps/gooby_steps.rb:82
    And line: example:     rake gooby:generate_google_earth_map config_file=config/big_sur_marathon.yaml                      # features/steps/gooby_steps.rb:82
    And line: Your GOOBY_HOME directory is currently set to                                                                   # features/steps/gooby_steps.rb:82
    And the output contains the expected lines                                                                                # features/steps/gooby_steps.rb:123

  Scenario: Split a large TCX file exported from Garmin Training Center                         # features/gooby.feature:98
    Given we imported the data from our Garmin GPS device model 305 into Garmin Training Center # features/steps/gooby_steps.rb:24
    And exported the data from Garmin Training Center to a TCX file                             # features/steps/gooby_steps.rb:28
    And the TCX file is named 'data/current.tcx'                                                # features/steps/gooby_steps.rb:32
    When rake task 'gooby:extract_activities_from_tcx' is executed                              # features/steps/gooby_steps.rb:50
    Then the splits directory contains at least 15 files matching name '2009'                   # features/steps/gooby_steps.rb:104
    And the splits directory contains at least 90 files matching name '2008'                    # features/steps/gooby_steps.rb:104
    And the splits directory contains at least 100 files matching name '2007'                   # features/steps/gooby_steps.rb:104
    And these activity xml files exist:                                                         # features/steps/gooby_steps.rb:110
      | file                               | lines |
      | splits/2008_04_27_13_49_50_tcx.xml | 24560 |
      | splits/2009_01_01_14_45_00_tcx.xml | 10630 |

  Scenario: Parse an activity xml file to csv                      # features/gooby.feature:112
    Given the config file we use is 'config/big_sur_marathon.yaml' # features/steps/gooby_steps.rb:20
    When rake task 'gooby:parse_activity_xml_to_csv' is executed   # features/steps/gooby_steps.rb:50
    Then the CSV file 'csv/2008_04_27_13_49_50_tcx.csv' is created # features/steps/gooby_steps.rb:64
    And the CSV file contains 2449 trackpoints                     # features/steps/gooby_steps.rb:86
    And the CSV file contains these trackpoints:                   # features/steps/gooby_steps.rb:151
      | seq  | time                 | latitude  | longitude   | distance         | elapsed | mph   | pace    |
      | 1    | 2008-04-27T13:49:50Z | 36.247196 | -121.781665 | 0.0              | 0:00:00 | 0.00  | 0:00    |
      | 1800 | 2008-04-27T15:50:22Z | 36.460703 | -121.924925 | 20.0004984569685 | 3:03:46 | 6.530 | 9:11.29 |
      | 2449 | 2008-04-27T17:09:28Z | 36.538656 | -121.91085  | 26.3666472682879 | 4:05:34 | 6.442 | 9:18.81 |

  Scenario: Parse a track log file to csv                           # features/gooby.feature:123
    Given the config file we use is 'config/crowders_mtn_hike.yaml' # features/steps/gooby_steps.rb:20
    When rake task 'gooby:parse_track_log_to_csv' is executed       # features/steps/gooby_steps.rb:50
    Then the CSV file 'csv/crowders_mtn_hike.csv' is created        # features/steps/gooby_steps.rb:64
    And the CSV file contains 1065 trackpoints                      # features/steps/gooby_steps.rb:86
    And the CSV file contains these trackpoints:                    # features/steps/gooby_steps.rb:151
      | seq  | time                 | latitude | longitude | distance         | elapsed | mph   | pace     |
      | 1    | 2008-11-16T08:43:06Z | 35.21357 | -81.29359 | 0.0              | 0:00:00 | 0.00  | 0:00     |
      | 1065 | 2008-11-16T14:46:11Z | 35.26834 | -81.25154 | 15.0878648193097 | 6:03:05 | 2.493 | 24:03.88 |

  Scenario: Parse a gpx file to csv                          # features/gooby.feature:133
    Given the config file we use is 'config/ballantyne.yaml' # features/steps/gooby_steps.rb:20
    When rake task 'gooby:parse_gpx_to_csv' is executed      # features/steps/gooby_steps.rb:50
    Then the CSV file 'csv/ballantyne.csv' is created        # features/steps/gooby_steps.rb:64
    And the CSV file contains 27 trackpoints                 # features/steps/gooby_steps.rb:86
    And the CSV file contains these trackpoints:             # features/steps/gooby_steps.rb:151
      | seq | time                 | latitude  | longitude  | distance           | elapsed | mph   | pace     |
      | 1   | 2009-05-14T22:08:50Z | 35.062748 | -80.85562  | 0.0                | 0:00:00 | 0.00  | 0:00     |
      | 27  | 2009-05-14T22:10:43Z | 35.062613 | -80.855448 | 0.0783970446562321 | 0:01:53 | 2.498 | 24:01.38 |

  Scenario: Generate a Big Sur Marathon Google map in html format                                                                                                                                  # features/gooby.feature:143
    Given the config file we use is 'config/big_sur_marathon.yaml'                                                                                                                                 # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_map' is executed                                                                                                                                         # features/steps/gooby_steps.rb:50
    Then the HTML file 'out/big_sur_marathon.html' is created                                                                                                                                      # features/steps/gooby_steps.rb:64
    And the HTML file contains 2766 lines                                                                                                                                                          # features/steps/gooby_steps.rb:96
    And the following lines are expected                                                                                                                                                           # features/steps/gooby_steps.rb:78
    And line: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"                                                                                                                # features/steps/gooby_steps.rb:82
    And line:   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">                                                                                                                  # features/steps/gooby_steps.rb:82
    And line: <html xmlns="http://www.w3.org/1999/xhtml">                                                                                                                          # features/steps/gooby_steps.rb:82
    And line: <head>                                                                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:   <meta http-equiv="content-type" content="text/html; charset=utf-8"/>                                                                                     # features/steps/gooby_steps.rb:82
    And line:   <meta name="description" content="Google Map generated by Gooby version 2.0.0">                                                                          # features/steps/gooby_steps.rb:82
    And line:   <meta name="keywords" content="Google Map Generated by Gooby version 2.0.0">                                                                             # features/steps/gooby_steps.rb:82
    And line:   <title> Big Sur Marathon </title>                                                                                                                                      # features/steps/gooby_steps.rb:82
    And line:   <script src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA                                                                                                 # features/steps/gooby_steps.rb:82
    And line:   <script type="text/javascript">                                                                                                                                    # features/steps/gooby_steps.rb:82
    And line: //<![CDATA[                                                                                                                                                                       # features/steps/gooby_steps.rb:82
    And line:     function load() {                                                                                                                                                                # features/steps/gooby_steps.rb:82
    And line:         if (GBrowserIsCompatible()) {                                                                                                                                                # features/steps/gooby_steps.rb:82
    And line:             var map = new GMap2(document.getElementById("map"));                                                                                                           # features/steps/gooby_steps.rb:82
    And line:             map.addControl(new GLargeMapControl());                                                                                                                                  # features/steps/gooby_steps.rb:82
    And line:             map.addControl(new GMapTypeControl());                                                                                                                                   # features/steps/gooby_steps.rb:82
    And line:             var centerPoint = new GLatLng(36.392926, -121.8600045);                                                                                                                  # features/steps/gooby_steps.rb:82
    And line:             map.setCenter(centerPoint, 11);                                                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             var points = new Array();                                                                                                                                                # features/steps/gooby_steps.rb:82
    And line:             points.push(new GLatLng(36.247196,-121.781665));                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             // points.push(new GLatLng(36.247208,-121.78167));                                                                                                                       # features/steps/gooby_steps.rb:82
    And line:             points.push(new GLatLng(36.538656,-121.91085));                                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             // app_max=200.0  ratio=12.245  increment=12                                                                                                                             # features/steps/gooby_steps.rb:82
    And line:             var routePolyline = new GPolyline(points);                                                                                                                               # features/steps/gooby_steps.rb:82
    And line:             map.addOverlay(routePolyline);                                                                                                                                           # features/steps/gooby_steps.rb:82
    And line:             // Create a base icon for all of our markers that specifies the                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             // shadow, icon dimensions, etc.                                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             var baseIcon = new GIcon();                                                                                                                                              # features/steps/gooby_steps.rb:82
    And line:             baseIcon.shadow = "images/shadow50.png";                                                                                                                       # features/steps/gooby_steps.rb:82
    And line:             baseIcon.iconSize = new GSize(20, 34);                                                                                                                                   # features/steps/gooby_steps.rb:82
    And line:             baseIcon.shadowSize = new GSize(37, 34);                                                                                                                                 # features/steps/gooby_steps.rb:82
    And line:             baseIcon.iconAnchor = new GPoint(9, 34);                                                                                                                                 # features/steps/gooby_steps.rb:82
    And line:             baseIcon.infoWindowAnchor = new GPoint(9, 2);                                                                                                                            # features/steps/gooby_steps.rb:82
    And line:             baseIcon.infoShadowAnchor = new GPoint(18, 25);                                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             var iconStart = new GIcon(baseIcon);                                                                                                                                     # features/steps/gooby_steps.rb:82
    And line:             iconStart.image = "images/dd-start.png";                                                                                                                       # features/steps/gooby_steps.rb:82
    And line:             var pStart = new GPoint(-121.781665, 36.247196);                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             var mStart = new GMarker(pStart, iconStart);                                                                                                                             # features/steps/gooby_steps.rb:82
    And line:             GEvent.addListener(mStart, "click", function() {                                                                                                               # features/steps/gooby_steps.rb:82
    And line:                 mStart.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Start!</b>                              # features/steps/gooby_steps.rb:82
    And line:             map.addOverlay(mStart);                                                                                                                                                  # features/steps/gooby_steps.rb:82
    And line:             var icon1 = new GIcon(baseIcon);                                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             icon1.image = "images/marker1.png";                                                                                                                            # features/steps/gooby_steps.rb:82
    And line:             var p1 = new GPoint(-121.788872, 36.259338);                                                                                                                             # features/steps/gooby_steps.rb:82
    And line:             var m1 = new GMarker(p1, icon1);                                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             GEvent.addListener(m1, "click", function() {                                                                                                                   # features/steps/gooby_steps.rb:82
    And line:               m1.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 1</b>                                    # features/steps/gooby_steps.rb:82
    And line:             map.addOverlay(m1);                                                                                                                                                      # features/steps/gooby_steps.rb:82
    And line:             var icon26 = new GIcon(baseIcon);                                                                                                                                        # features/steps/gooby_steps.rb:82
    And line:             icon26.image = "images/marker26.png";                                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             var p26 = new GPoint(-121.914424, 36.534368);                                                                                                                            # features/steps/gooby_steps.rb:82
    And line:             var m26 = new GMarker(p26, icon26);                                                                                                                                      # features/steps/gooby_steps.rb:82
    And line:             GEvent.addListener(m26, "click", function() {                                                                                                                  # features/steps/gooby_steps.rb:82
    And line:               m26.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Mile 26</b>                                  # features/steps/gooby_steps.rb:82
    And line:             map.addOverlay(m26);                                                                                                                                                     # features/steps/gooby_steps.rb:82
    And line:             var iconFinish = new GIcon(baseIcon);                                                                                                                                    # features/steps/gooby_steps.rb:82
    And line:             iconFinish.image = "images/dd-end.png";                                                                                                                        # features/steps/gooby_steps.rb:82
    And line:             var pFinish = new GPoint(-121.91085, 36.538656);                                                                                                                         # features/steps/gooby_steps.rb:82
    And line:             var mFinish = new GMarker(pFinish, iconFinish);                                                                                                                          # features/steps/gooby_steps.rb:82
    And line:             GEvent.addListener(mFinish, "click", function() {                                                                                                              # features/steps/gooby_steps.rb:82
    And line:                 mFinish.openInfoWindowHtml("<table align='left'><tr><td colspan='2'><b>Finish!</b>                            # features/steps/gooby_steps.rb:82
    And line:             map.addOverlay(mFinish);                                                                                                                                                 # features/steps/gooby_steps.rb:82
    And line: </script>                                                                                                                                                                      # features/steps/gooby_steps.rb:82
    And line: </head>                                                                                                                                                                        # features/steps/gooby_steps.rb:82
    And line: <body onload="load()" onunload="GUnload()">                                                                                                                # features/steps/gooby_steps.rb:82
    And line:   <center>                                                                                                                                                                     # features/steps/gooby_steps.rb:82
    And line:   <h3> Big Sur Marathon </h3>                                                                                                                                            # features/steps/gooby_steps.rb:82
    And line:   <div id="map" style="width: 1500px; height: 800px"></div>                                                                                          # features/steps/gooby_steps.rb:82
    And line:   <div id="messages"></div>                                                                                                                                    # features/steps/gooby_steps.rb:82
    And line:   </center>                                                                                                                                                                    # features/steps/gooby_steps.rb:82
    And line: </body>                                                                                                                                                                        # features/steps/gooby_steps.rb:82
    And line: </html>                                                                                                                                                                        # features/steps/gooby_steps.rb:82
    And the HTML contains the expected lines                                                                                                                                                       # features/steps/gooby_steps.rb:123

  Scenario: Generate a Big Sur Marathon Google Earth map in kml format                  # features/gooby.feature:223
    Given the config file we use is 'config/big_sur_marathon.yaml'                      # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_earth_map' is executed                        # features/steps/gooby_steps.rb:50
    Then the KML file 'out/big_sur_marathon.kml' is created                             # features/steps/gooby_steps.rb:64
    And the KML file contains 685 lines                                                 # features/steps/gooby_steps.rb:100
    And the following lines are expected                                                # features/steps/gooby_steps.rb:78
    And line: <?xml version="1.0" encoding="UTF-8"?>                                    # features/steps/gooby_steps.rb:82
    And line: <kml xmlns="http://www.opengis.net/kml/2.2">                              # features/steps/gooby_steps.rb:82
    And line:   <Document>                                                              # features/steps/gooby_steps.rb:82
    And line:     <!-- kml file generated by Gooby version 2.0.0 -->                    # features/steps/gooby_steps.rb:82
    And line:     <name>Big Sur Marathon</name>                                         # features/steps/gooby_steps.rb:82
    And line:     <Style id="goobyStyle">                                               # features/steps/gooby_steps.rb:82
    And line:       <name>Start</name>                                                  # features/steps/gooby_steps.rb:82
    And line:       <description><table align='left'><tr><td colspan='2'><b>Start!</b>  # features/steps/gooby_steps.rb:82
    And line:             <href>images/dd-start.png</href>                              # features/steps/gooby_steps.rb:82
    And line:         <coordinates>-121.781665,36.247196,1</coordinates>                # features/steps/gooby_steps.rb:82
    And line:       <name>Finish</name>                                                 # features/steps/gooby_steps.rb:82
    And line:       <description><table align='left'><tr><td colspan='2'><b>Finish!</b> # features/steps/gooby_steps.rb:82
    And line:             <href>images/dd-end.png</href>                                # features/steps/gooby_steps.rb:82
    And line:         <coordinates>-121.91085,36.538656,1</coordinates>                 # features/steps/gooby_steps.rb:82
    And line:       <visibility>1</visibility>                                          # features/steps/gooby_steps.rb:82
    And line:       <description>Route</description>                                    # features/steps/gooby_steps.rb:82
    And line:       <styleUrl>#goobyStyle</styleUrl>                                    # features/steps/gooby_steps.rb:82
    And line:       <LineString>                                                        # features/steps/gooby_steps.rb:82
    And line:         <tessellate>1</tessellate>                                        # features/steps/gooby_steps.rb:82
    And line:         <altitudeMode>relativeToGround</altitudeMode>                     # features/steps/gooby_steps.rb:82
    And line:         <coordinates>                                                     # features/steps/gooby_steps.rb:82
    And line:           -121.781665,36.247196,1                                         # features/steps/gooby_steps.rb:82
    And line:           -121.782714,36.248216,1                                         # features/steps/gooby_steps.rb:82
    And line:           -121.784484,36.249009,1                                         # features/steps/gooby_steps.rb:82
    And line:           -121.912713,36.536075,1                                         # features/steps/gooby_steps.rb:82
    And line:           -121.911365,36.537773,1                                         # features/steps/gooby_steps.rb:82
    And line:           -121.91085,36.538656,1                                          # features/steps/gooby_steps.rb:82
    And line:         </coordinates>                                                    # features/steps/gooby_steps.rb:82
    And line:       </LineString>                                                       # features/steps/gooby_steps.rb:82
    And line:     </Placemark>                                                          # features/steps/gooby_steps.rb:82
    And line:   </Document>                                                             # features/steps/gooby_steps.rb:82
    And line: </kml>                                                                    # features/steps/gooby_steps.rb:82
    And the KML contains the expected lines                                             # features/steps/gooby_steps.rb:123

  Scenario: Parse the Davidson 11-miler activity xml file to csv            # features/gooby.feature:263
    Given the config file we use is 'config/davidson1.yaml'                 # features/steps/gooby_steps.rb:20
    When rake task 'gooby:parse_activity_xml_to_csv' is executed            # features/steps/gooby_steps.rb:50
    Then the CSV file 'csv/davidson1.csv' is created                        # features/steps/gooby_steps.rb:64
    And the CSV file contains 1060 trackpoints                              # features/steps/gooby_steps.rb:86
    And the CSV file contains these trackpoints:                            # features/steps/gooby_steps.rb:151
      | seq  | time                 | latitude  | longitude  | distance         | elapsed | mph   | pace    |
      | 1    | 2009-01-01T14:45:00Z | 35.495525 | -80.83215  | 0.0              | 0:00:00 | 0.00  | 0:00    |
      | 1060 | 2009-01-01T16:25:22Z | 35.495495 | -80.832109 | 11.0685814547597 | 1:40:22 | 6.617 | 9:04.06 |
    And we edit CSV file 'csv/davidson1.csv' to contain only point number 1 # features/steps/gooby_steps.rb:143

  Scenario: Generate a single-point Google map in html format # features/gooby.feature:274
    Given the config file we use is 'config/davidson1.yaml'   # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_map' is executed    # features/steps/gooby_steps.rb:50
    Then the HTML file 'out/davidson1.html' is created        # features/steps/gooby_steps.rb:64
    And the HTML file contains 75 lines                       # features/steps/gooby_steps.rb:96

  Scenario: Generate a single-point Google Earth map in kmz format # features/gooby.feature:280
    Given the config file we use is 'config/davidson1.yaml'        # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_earth_map' is executed   # features/steps/gooby_steps.rb:50
    Then the KML file 'out/doc.kml' is created                     # features/steps/gooby_steps.rb:64
    And the KML file contains 49 lines                             # features/steps/gooby_steps.rb:100
    Then the KMZ file 'gooby_davidson1.kmz' is created             # features/steps/gooby_steps.rb:64

  Scenario: Generate a Crowders Mt. Hike Google map in html format from Garmin eTrex Venture source data # features/gooby.feature:287
    Given the config file we use is 'config/crowders_mtn_hike.yaml'                                      # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_map' is executed                                               # features/steps/gooby_steps.rb:50
    Then the HTML file 'out/crowders_mtn_hike.html' is created                                           # features/steps/gooby_steps.rb:64
    And the HTML file contains 1283 lines                                                                # features/steps/gooby_steps.rb:96

  Scenario: Generate a Google Earth map in kml format from iPhone & MotionX app source data # features/gooby.feature:293
    Given the config file we use is 'config/ballantyne.yaml'                                # features/steps/gooby_steps.rb:20
    When rake task 'gooby:generate_google_earth_map' is executed                            # features/steps/gooby_steps.rb:50
    Then the KML file 'out/ballantyne.kml' is created                                       # features/steps/gooby_steps.rb:64
    And the KML file contains 91 lines                                                      # features/steps/gooby_steps.rb:100

  Scenario: Save the generated files for packaging in the gooby gem # features/gooby.feature:299
    Then copy the generated files to the samples directory          # features/steps/gooby_steps.rb:172

14 scenarios (14 passed)
247 steps (247 passed)