libcraigscrape 0.6.5 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. data/CHANGELOG +17 -0
  2. data/Rakefile +1 -1
  3. data/bin/craigwatch +10 -10
  4. data/bin/report_mailer/craigslist_report.html.erb +2 -2
  5. data/bin/report_mailer/craigslist_report.plain.erb +2 -2
  6. data/lib/libcraigscrape.rb +585 -342
  7. data/test/geolisting_samples/geo_listing_ca070209.html +76 -0
  8. data/test/geolisting_samples/geo_listing_ca_sk070209.html +31 -0
  9. data/test/geolisting_samples/geo_listing_cn070209.html +35 -0
  10. data/test/geolisting_samples/geo_listing_us070209.html +355 -0
  11. data/test/libcraigscrape_test_helpers.rb +31 -0
  12. data/test/listing_samples/fortmyers_art_index.060909/1046596324.html +93 -0
  13. data/test/listing_samples/fortmyers_art_index.060909/1053085283.html +92 -0
  14. data/test/listing_samples/fortmyers_art_index.060909/1112522674.html +89 -0
  15. data/test/listing_samples/fortmyers_art_index.060909/823516079.html +92 -0
  16. data/test/listing_samples/fortmyers_art_index.060909/825684735.html +89 -0
  17. data/test/listing_samples/fortmyers_art_index.060909/891513957.html +94 -0
  18. data/test/listing_samples/fortmyers_art_index.060909/897549505.html +99 -0
  19. data/test/listing_samples/fortmyers_art_index.060909/960826026.html +89 -0
  20. data/test/listing_samples/fortmyers_art_index.060909/993256300.html +89 -0
  21. data/test/listing_samples/fortmyers_art_index.060909/fortmyers_art_index500.060909.html +237 -0
  22. data/test/listing_samples/fortmyers_art_index.060909/fortmyers_art_index600.060909.html +132 -0
  23. data/test/listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack1000.6.18.09.html +144 -0
  24. data/test/listing_samples/miami_search_sss_rack.6.18.09/miami_search_sss_rack900.6.18.09.html +146 -0
  25. data/test/post_samples/brw_reb_1224008903.html +101 -0
  26. data/test/post_samples/sfbay_art_1223614914.html +94 -0
  27. data/test/test_craigslist_geolisting.rb +425 -0
  28. data/test/test_craigslist_listing.rb +179 -260
  29. data/test/test_craigslist_posting.rb +306 -0
  30. metadata +29 -2
@@ -0,0 +1,94 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2
+ <html>
3
+ <head>
4
+ <title>Bombay Company Art Painting</title>
5
+ <meta name="robots" content="NOARCHIVE,NOFOLLOW">
6
+ <link rel="stylesheet" title="craigslist" href="http://www.craigslist.org/styles/craigslist.css" type="text/css" media="all">
7
+ </head>
8
+
9
+ <body onload="initFlag(1223614914)" class="posting">
10
+
11
+ <div class="bchead">
12
+ <a id="ef" href="/email.friend?postingID=1223614914">email this posting to a friend</a>
13
+ <a href="http://sfbay.craigslist.org">SF bay area craigslist</a>
14
+ &gt; <a href="/sby/">south bay</a> &gt; <a href="/sby/art/">art &amp; crafts</a>
15
+ </div>
16
+
17
+ <div id="flags">
18
+ <div id="flagMsg">
19
+ please <a href="http://www.craigslist.org/about/help/flags_and_community_moderation">flag</a> with care:
20
+ </div>
21
+ <div id="flagChooser">
22
+ <br>
23
+ <a class="fl" id="flag16" href="/flag/?flagCode=16&amp;postingID=1223614914"
24
+ title="Wrong category, wrong site, discusses another post, or otherwise misplaced">
25
+ miscategorized</a>
26
+ <br>
27
+
28
+ <a class="fl" id="flag28" href="/flag/?flagCode=28&amp;postingID=1223614914"
29
+ title="Violates craigslist Terms Of Use or other posted guidelines">
30
+ prohibited</a>
31
+ <br>
32
+
33
+ <a class="fl" id="flag15" href="/flag/?flagCode=15&amp;postingID=1223614914"
34
+ title="Posted too frequently, in multiple cities/categories, or is too commercial">
35
+ spam/overpost</a>
36
+ <br>
37
+
38
+ <a class="fl" id="flag9" href="/flag/?flagCode=9&amp;postingID=1223614914"
39
+ title="Should be considered for inclusion in the Best-Of-Craigslist">
40
+ best of craigslist</a>
41
+ <br>
42
+ </div>
43
+ </div>
44
+
45
+ <div id="tsb">
46
+ <em>Avoid scams and fraud by dealing locally!</em> Beware any deal involving Western Union, Moneygram, wire transfer, cashier check, money order, shipping, escrow, or any promise of transaction protection/certification/guarantee. <a href="http://www.craigslist.org/about/scams.html">More info</a></div>
47
+ <h2>Bombay Company Art Painting - $650 (saratoga)</h2>
48
+ <hr>
49
+ Reply to: <a href="mailto:sale-trzm8-1223614914@craigslist.org?subject=Bombay%20Company%20Art%20Painting%20-%20%24650%20(saratoga)">sale-trzm8-1223614914@craigslist.org</a> <sup>[<a href="http://www.craigslist.org/about/help/replying_to_posts" target="_blank">Errors when replying to ads?</a>]</sup><br>
50
+ Date: 2009-06-15, 7:38PM PDT<br>
51
+ <br>
52
+ <br>
53
+ <div id="userbody">
54
+ Bombay Company Beautiful Art Postered Painting
55
+ � The most beautiful piece of art you could have
56
+ � Matches with any type of furnishing and decoration
57
+ � A must see/Only one year old
58
+ � Regular Price @ $1500.00
59
+ � Sale Price @ $650.00
60
+
61
+
62
+
63
+ <br><br><ul>
64
+ <li>it's NOT ok to contact this poster with services or other commercial interests</ul>
65
+
66
+ <table summary="craigslist hosted images">
67
+ <tr>
68
+ <td align="center"><img src="http://images.craigslist.org/3kf3o93laZZZZZZZZZ96fbc594a6ceb1f1025.jpg" alt="image 1223614914-0"></td>
69
+ <td align="center"></td>
70
+ </tr>
71
+ <tr>
72
+ <td align="center"></td>
73
+ <td align="center"></td>
74
+ </tr>
75
+ </table>
76
+
77
+ </div>
78
+ PostingID: 1223614914<br>
79
+
80
+
81
+ <br>
82
+
83
+ <hr>
84
+ <ul class="clfooter">
85
+ <li>Copyright &copy; 2009 craigslist, inc.</li>
86
+ <li><a href="http://www.craigslist.org/about/terms.of.use.html">terms of use</a></li>
87
+ <li><a href="http://www.craigslist.org/about/privacy_policy">privacy policy</a></li>
88
+ <li><a href="/forums/?forumID=8">feedback forum</a></li>
89
+ </ul>
90
+ <script type="text/javascript" src="http://www.craigslist.org/js/jquery.js"></script>
91
+ <script type="text/javascript" src="http://www.craigslist.org/js/postings.js"></script>
92
+ </body>
93
+ </html>
94
+
@@ -0,0 +1,425 @@
1
+ #!/usr/bin/ruby
2
+
3
+ require 'test/unit'
4
+ require File.dirname(__FILE__)+'/../lib/libcraigscrape'
5
+ require File.dirname(__FILE__)+'/libcraigscrape_test_helpers'
6
+
7
+ class CraigslistGeolistingTest < Test::Unit::TestCase
8
+ include LibcraigscrapeTestHelpers
9
+
10
+ def test_pukes
11
+ assert_raise(CraigScrape::Scraper::ParseError) do
12
+ CraigScrape::GeoListings.new( relative_uri_for('google.html') ).sites
13
+ end
14
+ end
15
+
16
+ def test_geo_listings
17
+ geo_listing_us070209 = CraigScrape::GeoListings.new relative_uri_for(
18
+ 'geolisting_samples/geo_listing_us070209.html'
19
+ )
20
+ assert_equal 'united states', geo_listing_us070209.location
21
+ assert_equal 326, geo_listing_us070209.sites.length
22
+ assert_equal "http://sfbay.craigslist.org/", geo_listing_us070209.sites["SF bay area"]
23
+ assert_equal "http://abilene.craigslist.org/", geo_listing_us070209.sites["abilene"]
24
+ assert_equal "http://akroncanton.craigslist.org/", geo_listing_us070209.sites["akron / canton"]
25
+ assert_equal "http://anchorage.craigslist.org/", geo_listing_us070209.sites["alaska"]
26
+ assert_equal "http://albany.craigslist.org/", geo_listing_us070209.sites["albany"]
27
+ assert_equal "http://albuquerque.craigslist.org/", geo_listing_us070209.sites["albuquerque"]
28
+ assert_equal "http://altoona.craigslist.org/", geo_listing_us070209.sites["altoona-johnstown"]
29
+ assert_equal "http://amarillo.craigslist.org/", geo_listing_us070209.sites["amarillo"]
30
+ assert_equal "http://ames.craigslist.org/", geo_listing_us070209.sites["ames, IA"]
31
+ assert_equal "http://annarbor.craigslist.org/", geo_listing_us070209.sites["ann arbor"]
32
+ assert_equal "http://annapolis.craigslist.org/", geo_listing_us070209.sites["annapolis"]
33
+ assert_equal "http://appleton.craigslist.org/", geo_listing_us070209.sites["appleton-oshkosh-FDL"]
34
+ assert_equal "http://asheville.craigslist.org/", geo_listing_us070209.sites["asheville"]
35
+ assert_equal "http://athensga.craigslist.org/", geo_listing_us070209.sites["athens, GA"]
36
+ assert_equal "http://athensohio.craigslist.org/", geo_listing_us070209.sites["athens, OH"]
37
+ assert_equal "http://atlanta.craigslist.org/", geo_listing_us070209.sites["atlanta"]
38
+ assert_equal "http://auburn.craigslist.org/", geo_listing_us070209.sites["auburn"]
39
+ assert_equal "http://augusta.craigslist.org/", geo_listing_us070209.sites["augusta"]
40
+ assert_equal "http://austin.craigslist.org/", geo_listing_us070209.sites["austin"]
41
+ assert_equal "http://bakersfield.craigslist.org/", geo_listing_us070209.sites["bakersfield"]
42
+ assert_equal "http://baltimore.craigslist.org/", geo_listing_us070209.sites["baltimore"]
43
+ assert_equal "http://batonrouge.craigslist.org/", geo_listing_us070209.sites["baton rouge"]
44
+ assert_equal "http://beaumont.craigslist.org/", geo_listing_us070209.sites["beaumont / port arthur"]
45
+ assert_equal "http://bellingham.craigslist.org/", geo_listing_us070209.sites["bellingham"]
46
+ assert_equal "http://bend.craigslist.org/", geo_listing_us070209.sites["bend"]
47
+ assert_equal "http://binghamton.craigslist.org/", geo_listing_us070209.sites["binghamton"]
48
+ assert_equal "http://bham.craigslist.org/", geo_listing_us070209.sites["birmingham, AL"]
49
+ assert_equal "http://blacksburg.craigslist.org/", geo_listing_us070209.sites["blacksburg"]
50
+ assert_equal "http://bloomington.craigslist.org/", geo_listing_us070209.sites["bloomington"]
51
+ assert_equal "http://bn.craigslist.org/", geo_listing_us070209.sites["bloomington-normal"]
52
+ assert_equal "http://boise.craigslist.org/", geo_listing_us070209.sites["boise"]
53
+ assert_equal "http://boone.craigslist.org/", geo_listing_us070209.sites["boone"]
54
+ assert_equal "http://boston.craigslist.org/", geo_listing_us070209.sites["boston"]
55
+ assert_equal "http://boulder.craigslist.org/", geo_listing_us070209.sites["boulder"]
56
+ assert_equal "http://bgky.craigslist.org/", geo_listing_us070209.sites["bowling green"]
57
+ assert_equal "http://brownsville.craigslist.org/", geo_listing_us070209.sites["brownsville"]
58
+ assert_equal "http://brunswick.craigslist.org/", geo_listing_us070209.sites["brunswick, GA"]
59
+ assert_equal "http://buffalo.craigslist.org/", geo_listing_us070209.sites["buffalo"]
60
+ assert_equal "http://capecod.craigslist.org/", geo_listing_us070209.sites["cape cod / islands"]
61
+ assert_equal "http://carbondale.craigslist.org/", geo_listing_us070209.sites["carbondale"]
62
+ assert_equal "http://catskills.craigslist.org/", geo_listing_us070209.sites["catskills"]
63
+ assert_equal "http://cedarrapids.craigslist.org/", geo_listing_us070209.sites["cedar rapids"]
64
+ assert_equal "http://cnj.craigslist.org/", geo_listing_us070209.sites["central NJ"]
65
+ assert_equal "http://centralmich.craigslist.org/", geo_listing_us070209.sites["central michigan"]
66
+ assert_equal "http://chambana.craigslist.org/", geo_listing_us070209.sites["champaign urbana"]
67
+ assert_equal "http://charleston.craigslist.org/", geo_listing_us070209.sites["charleston, SC"]
68
+ assert_equal "http://charlestonwv.craigslist.org/", geo_listing_us070209.sites["charleston, WV"]
69
+ assert_equal "http://charlotte.craigslist.org/", geo_listing_us070209.sites["charlotte"]
70
+ assert_equal "http://charlottesville.craigslist.org/", geo_listing_us070209.sites["charlottesville"]
71
+ assert_equal "http://chattanooga.craigslist.org/", geo_listing_us070209.sites["chattanooga"]
72
+ assert_equal "http://chautauqua.craigslist.org/", geo_listing_us070209.sites["chautauqua"]
73
+ assert_equal "http://chicago.craigslist.org/", geo_listing_us070209.sites["chicago"]
74
+ assert_equal "http://chico.craigslist.org/", geo_listing_us070209.sites["chico"]
75
+ assert_equal "http://cincinnati.craigslist.org/", geo_listing_us070209.sites["cincinnati, OH"]
76
+ assert_equal "http://clarksville.craigslist.org/", geo_listing_us070209.sites["clarksville, TN"]
77
+ assert_equal "http://cleveland.craigslist.org/", geo_listing_us070209.sites["cleveland"]
78
+ assert_equal "http://collegestation.craigslist.org/", geo_listing_us070209.sites["college station"]
79
+ assert_equal "http://cosprings.craigslist.org/", geo_listing_us070209.sites["colorado springs"]
80
+ assert_equal "http://columbiamo.craigslist.org/", geo_listing_us070209.sites["columbia / jeff city"]
81
+ assert_equal "http://columbia.craigslist.org/", geo_listing_us070209.sites["columbia, SC"]
82
+ assert_equal "http://columbus.craigslist.org/", geo_listing_us070209.sites["columbus"]
83
+ assert_equal "http://columbusga.craigslist.org/", geo_listing_us070209.sites["columbus, GA"]
84
+ assert_equal "http://corpuschristi.craigslist.org/", geo_listing_us070209.sites["corpus christi"]
85
+ assert_equal "http://corvallis.craigslist.org/", geo_listing_us070209.sites["corvallis/albany"]
86
+ assert_equal "http://dallas.craigslist.org/", geo_listing_us070209.sites["dallas / fort worth"]
87
+ assert_equal "http://danville.craigslist.org/", geo_listing_us070209.sites["danville"]
88
+ assert_equal "http://dayton.craigslist.org/", geo_listing_us070209.sites["dayton / springfield"]
89
+ assert_equal "http://daytona.craigslist.org/", geo_listing_us070209.sites["daytona beach"]
90
+ assert_equal "http://decatur.craigslist.org/", geo_listing_us070209.sites["decatur, IL"]
91
+ assert_equal "http://delaware.craigslist.org/", geo_listing_us070209.sites["delaware"]
92
+ assert_equal "http://denver.craigslist.org/", geo_listing_us070209.sites["denver"]
93
+ assert_equal "http://desmoines.craigslist.org/", geo_listing_us070209.sites["des moines"]
94
+ assert_equal "http://detroit.craigslist.org/", geo_listing_us070209.sites["detroit metro"]
95
+ assert_equal "http://dothan.craigslist.org/", geo_listing_us070209.sites["dothan, AL"]
96
+ assert_equal "http://dubuque.craigslist.org/", geo_listing_us070209.sites["dubuque"]
97
+ assert_equal "http://duluth.craigslist.org/", geo_listing_us070209.sites["duluth / superior"]
98
+ assert_equal "http://eastidaho.craigslist.org/", geo_listing_us070209.sites["east idaho"]
99
+ assert_equal "http://eastoregon.craigslist.org/", geo_listing_us070209.sites["east oregon"]
100
+ assert_equal "http://newlondon.craigslist.org/", geo_listing_us070209.sites["eastern CT"]
101
+ assert_equal "http://eastnc.craigslist.org/", geo_listing_us070209.sites["eastern NC"]
102
+ assert_equal "http://easternshore.craigslist.org/", geo_listing_us070209.sites["eastern shore"]
103
+ assert_equal "http://eauclaire.craigslist.org/", geo_listing_us070209.sites["eau claire"]
104
+ assert_equal "http://elpaso.craigslist.org/", geo_listing_us070209.sites["el paso"]
105
+ assert_equal "http://elmira.craigslist.org/", geo_listing_us070209.sites["elmira-corning"]
106
+ assert_equal "http://erie.craigslist.org/", geo_listing_us070209.sites["erie, PA"]
107
+ assert_equal "http://eugene.craigslist.org/", geo_listing_us070209.sites["eugene"]
108
+ assert_equal "http://evansville.craigslist.org/", geo_listing_us070209.sites["evansville"]
109
+ assert_equal "http://fargo.craigslist.org/", geo_listing_us070209.sites["fargo / moorhead"]
110
+ assert_equal "http://farmington.craigslist.org/", geo_listing_us070209.sites["farmington, NM"]
111
+ assert_equal "http://fayetteville.craigslist.org/", geo_listing_us070209.sites["fayetteville"]
112
+ assert_equal "http://fayar.craigslist.org/", geo_listing_us070209.sites["fayetteville, AR"]
113
+ assert_equal "http://flagstaff.craigslist.org/", geo_listing_us070209.sites["flagstaff / sedona"]
114
+ assert_equal "http://flint.craigslist.org/", geo_listing_us070209.sites["flint"]
115
+ assert_equal "http://shoals.craigslist.org/", geo_listing_us070209.sites["florence / muscle shoals"]
116
+ assert_equal "http://florencesc.craigslist.org/", geo_listing_us070209.sites["florence, SC"]
117
+ assert_equal "http://keys.craigslist.org/", geo_listing_us070209.sites["florida keys"]
118
+ assert_equal "http://fortcollins.craigslist.org/", geo_listing_us070209.sites["fort collins / north CO"]
119
+ assert_equal "http://fortsmith.craigslist.org/", geo_listing_us070209.sites["fort smith, AR"]
120
+ assert_equal "http://fortwayne.craigslist.org/", geo_listing_us070209.sites["fort wayne"]
121
+ assert_equal "http://fredericksburg.craigslist.org/", geo_listing_us070209.sites["fredericksburg"]
122
+ assert_equal "http://fresno.craigslist.org/", geo_listing_us070209.sites["fresno"]
123
+ assert_equal "http://fortmyers.craigslist.org/", geo_listing_us070209.sites["ft myers / SW florida"]
124
+ assert_equal "http://gadsden.craigslist.org/", geo_listing_us070209.sites["gadsden-anniston"]
125
+ assert_equal "http://gainesville.craigslist.org/", geo_listing_us070209.sites["gainesville"]
126
+ assert_equal "http://galveston.craigslist.org/", geo_listing_us070209.sites["galveston"]
127
+ assert_equal "http://goldcountry.craigslist.org/", geo_listing_us070209.sites["gold country"]
128
+ assert_equal "http://grandisland.craigslist.org/", geo_listing_us070209.sites["grand island"]
129
+ assert_equal "http://grandrapids.craigslist.org/", geo_listing_us070209.sites["grand rapids"]
130
+ assert_equal "http://greenbay.craigslist.org/", geo_listing_us070209.sites["green bay"]
131
+ assert_equal "http://greensboro.craigslist.org/", geo_listing_us070209.sites["greensboro"]
132
+ assert_equal "http://greenville.craigslist.org/", geo_listing_us070209.sites["greenville / upstate"]
133
+ assert_equal "http://gulfport.craigslist.org/", geo_listing_us070209.sites["gulfport / biloxi"]
134
+ assert_equal "http://norfolk.craigslist.org/", geo_listing_us070209.sites["hampton roads"]
135
+ assert_equal "http://harrisburg.craigslist.org/", geo_listing_us070209.sites["harrisburg"]
136
+ assert_equal "http://harrisonburg.craigslist.org/", geo_listing_us070209.sites["harrisonburg"]
137
+ assert_equal "http://hartford.craigslist.org/", geo_listing_us070209.sites["hartford"]
138
+ assert_equal "http://hattiesburg.craigslist.org/", geo_listing_us070209.sites["hattiesburg"]
139
+ assert_equal "http://honolulu.craigslist.org/", geo_listing_us070209.sites["hawaii"]
140
+ assert_equal "http://hickory.craigslist.org/", geo_listing_us070209.sites["hickory / lenoir"]
141
+ assert_equal "http://hiltonhead.craigslist.org/", geo_listing_us070209.sites["hilton head"]
142
+ assert_equal "http://houston.craigslist.org/", geo_listing_us070209.sites["houston"]
143
+ assert_equal "http://hudsonvalley.craigslist.org/", geo_listing_us070209.sites["hudson valley"]
144
+ assert_equal "http://humboldt.craigslist.org/", geo_listing_us070209.sites["humboldt county"]
145
+ assert_equal "http://huntington.craigslist.org/", geo_listing_us070209.sites["huntington-ashland"]
146
+ assert_equal "http://huntsville.craigslist.org/", geo_listing_us070209.sites["huntsville"]
147
+ assert_equal "http://imperial.craigslist.org/", geo_listing_us070209.sites["imperial county"]
148
+ assert_equal "http://indianapolis.craigslist.org/", geo_listing_us070209.sites["indianapolis"]
149
+ assert_equal "http://inlandempire.craigslist.org/", geo_listing_us070209.sites["inland empire"]
150
+ assert_equal "http://iowacity.craigslist.org/", geo_listing_us070209.sites["iowa city"]
151
+ assert_equal "http://ithaca.craigslist.org/", geo_listing_us070209.sites["ithaca"]
152
+ assert_equal "http://jxn.craigslist.org/", geo_listing_us070209.sites["jackson, MI"]
153
+ assert_equal "http://jackson.craigslist.org/", geo_listing_us070209.sites["jackson, MS"]
154
+ assert_equal "http://jacksontn.craigslist.org/", geo_listing_us070209.sites["jackson, TN"]
155
+ assert_equal "http://jacksonville.craigslist.org/", geo_listing_us070209.sites["jacksonville"]
156
+ assert_equal "http://janesville.craigslist.org/", geo_listing_us070209.sites["janesville"]
157
+ assert_equal "http://jerseyshore.craigslist.org/", geo_listing_us070209.sites["jersey shore"]
158
+ assert_equal "http://jonesboro.craigslist.org/", geo_listing_us070209.sites["jonesboro"]
159
+ assert_equal "http://joplin.craigslist.org/", geo_listing_us070209.sites["joplin"]
160
+ assert_equal "http://kalamazoo.craigslist.org/", geo_listing_us070209.sites["kalamazoo"]
161
+ assert_equal "http://kansascity.craigslist.org/", geo_listing_us070209.sites["kansas city, MO"]
162
+ assert_equal "http://kpr.craigslist.org/", geo_listing_us070209.sites["kennewick-pasco-richland"]
163
+ assert_equal "http://racine.craigslist.org/", geo_listing_us070209.sites["kenosha-racine"]
164
+ assert_equal "http://killeen.craigslist.org/", geo_listing_us070209.sites["killeen / temple / ft hood"]
165
+ assert_equal "http://knoxville.craigslist.org/", geo_listing_us070209.sites["knoxville"]
166
+ assert_equal "http://lacrosse.craigslist.org/", geo_listing_us070209.sites["la crosse"]
167
+ assert_equal "http://lafayette.craigslist.org/", geo_listing_us070209.sites["lafayette"]
168
+ assert_equal "http://tippecanoe.craigslist.org/", geo_listing_us070209.sites["lafayette / west lafayette"]
169
+ assert_equal "http://lakecharles.craigslist.org/", geo_listing_us070209.sites["lake charles"]
170
+ assert_equal "http://lakeland.craigslist.org/", geo_listing_us070209.sites["lakeland"]
171
+ assert_equal "http://lancaster.craigslist.org/", geo_listing_us070209.sites["lancaster, PA"]
172
+ assert_equal "http://lansing.craigslist.org/", geo_listing_us070209.sites["lansing"]
173
+ assert_equal "http://laredo.craigslist.org/", geo_listing_us070209.sites["laredo"]
174
+ assert_equal "http://lascruces.craigslist.org/", geo_listing_us070209.sites["las cruces"]
175
+ assert_equal "http://lasvegas.craigslist.org/", geo_listing_us070209.sites["las vegas"]
176
+ assert_equal "http://lawrence.craigslist.org/", geo_listing_us070209.sites["lawrence"]
177
+ assert_equal "http://lawton.craigslist.org/", geo_listing_us070209.sites["lawton"]
178
+ assert_equal "http://allentown.craigslist.org/", geo_listing_us070209.sites["lehigh valley"]
179
+ assert_equal "http://lexington.craigslist.org/", geo_listing_us070209.sites["lexington, KY"]
180
+ assert_equal "http://limaohio.craigslist.org/", geo_listing_us070209.sites["lima / findlay"]
181
+ assert_equal "http://lincoln.craigslist.org/", geo_listing_us070209.sites["lincoln"]
182
+ assert_equal "http://littlerock.craigslist.org/", geo_listing_us070209.sites["little rock"]
183
+ assert_equal "http://logan.craigslist.org/", geo_listing_us070209.sites["logan"]
184
+ assert_equal "http://longisland.craigslist.org/", geo_listing_us070209.sites["long island"]
185
+ assert_equal "http://losangeles.craigslist.org/", geo_listing_us070209.sites["los angeles"]
186
+ assert_equal "http://louisville.craigslist.org/", geo_listing_us070209.sites["louisville"]
187
+ assert_equal "http://lubbock.craigslist.org/", geo_listing_us070209.sites["lubbock"]
188
+ assert_equal "http://lynchburg.craigslist.org/", geo_listing_us070209.sites["lynchburg"]
189
+ assert_equal "http://macon.craigslist.org/", geo_listing_us070209.sites["macon"]
190
+ assert_equal "http://madison.craigslist.org/", geo_listing_us070209.sites["madison"]
191
+ assert_equal "http://maine.craigslist.org/", geo_listing_us070209.sites["maine"]
192
+ assert_equal "http://ksu.craigslist.org/", geo_listing_us070209.sites["manhattan, KS"]
193
+ assert_equal "http://mankato.craigslist.org/", geo_listing_us070209.sites["mankato"]
194
+ assert_equal "http://mansfield.craigslist.org/", geo_listing_us070209.sites["mansfield"]
195
+ assert_equal "http://martinsburg.craigslist.org/", geo_listing_us070209.sites["martinsburg"]
196
+ assert_equal "http://mcallen.craigslist.org/", geo_listing_us070209.sites["mcallen / edinburg"]
197
+ assert_equal "http://medford.craigslist.org/", geo_listing_us070209.sites["medford-ashland-klamath"]
198
+ assert_equal "http://memphis.craigslist.org/", geo_listing_us070209.sites["memphis, TN"]
199
+ assert_equal "http://mendocino.craigslist.org/", geo_listing_us070209.sites["mendocino county"]
200
+ assert_equal "http://merced.craigslist.org/", geo_listing_us070209.sites["merced"]
201
+ assert_equal "http://milwaukee.craigslist.org/", geo_listing_us070209.sites["milwaukee"]
202
+ assert_equal "http://minneapolis.craigslist.org/", geo_listing_us070209.sites["minneapolis / st paul"]
203
+ assert_equal "http://mobile.craigslist.org/", geo_listing_us070209.sites["mobile"]
204
+ assert_equal "http://modesto.craigslist.org/", geo_listing_us070209.sites["modesto"]
205
+ assert_equal "http://mohave.craigslist.org/", geo_listing_us070209.sites["mohave county"]
206
+ assert_equal "http://monroe.craigslist.org/", geo_listing_us070209.sites["monroe, LA"]
207
+ assert_equal "http://montana.craigslist.org/", geo_listing_us070209.sites["montana"]
208
+ assert_equal "http://monterey.craigslist.org/", geo_listing_us070209.sites["monterey bay"]
209
+ assert_equal "http://montgomery.craigslist.org/", geo_listing_us070209.sites["montgomery"]
210
+ assert_equal "http://morgantown.craigslist.org/", geo_listing_us070209.sites["morgantown"]
211
+ assert_equal "http://muncie.craigslist.org/", geo_listing_us070209.sites["muncie / anderson"]
212
+ assert_equal "http://muskegon.craigslist.org/", geo_listing_us070209.sites["muskegon"]
213
+ assert_equal "http://myrtlebeach.craigslist.org/", geo_listing_us070209.sites["myrtle beach"]
214
+ assert_equal "http://nashville.craigslist.org/", geo_listing_us070209.sites["nashville"]
215
+ assert_equal "http://nh.craigslist.org/", geo_listing_us070209.sites["new hampshire"]
216
+ assert_equal "http://newhaven.craigslist.org/", geo_listing_us070209.sites["new haven"]
217
+ assert_equal "http://neworleans.craigslist.org/", geo_listing_us070209.sites["new orleans"]
218
+ assert_equal "http://newyork.craigslist.org/", geo_listing_us070209.sites["new york city"]
219
+ assert_equal "http://nd.craigslist.org/", geo_listing_us070209.sites["north dakota"]
220
+ assert_equal "http://newjersey.craigslist.org/", geo_listing_us070209.sites["north jersey"]
221
+ assert_equal "http://northmiss.craigslist.org/", geo_listing_us070209.sites["north mississippi"]
222
+ assert_equal "http://nmi.craigslist.org/", geo_listing_us070209.sites["northern michigan"]
223
+ assert_equal "http://nwct.craigslist.org/", geo_listing_us070209.sites["northwest CT"]
224
+ assert_equal "http://ocala.craigslist.org/", geo_listing_us070209.sites["ocala"]
225
+ assert_equal "http://odessa.craigslist.org/", geo_listing_us070209.sites["odessa / midland"]
226
+ assert_equal "http://ogden.craigslist.org/", geo_listing_us070209.sites["ogden-clearfield"]
227
+ assert_equal "http://oklahomacity.craigslist.org/", geo_listing_us070209.sites["oklahoma city"]
228
+ assert_equal "http://olympic.craigslist.org/", geo_listing_us070209.sites["olympic peninsula"]
229
+ assert_equal "http://omaha.craigslist.org/", geo_listing_us070209.sites["omaha / council bluffs"]
230
+ assert_equal "http://orangecounty.craigslist.org/", geo_listing_us070209.sites["orange county"]
231
+ assert_equal "http://oregoncoast.craigslist.org/", geo_listing_us070209.sites["oregon coast"]
232
+ assert_equal "http://orlando.craigslist.org/", geo_listing_us070209.sites["orlando"]
233
+ assert_equal "http://outerbanks.craigslist.org/", geo_listing_us070209.sites["outer banks"]
234
+ assert_equal "http://palmsprings.craigslist.org/", geo_listing_us070209.sites["palm springs, CA"]
235
+ assert_equal "http://panamacity.craigslist.org/", geo_listing_us070209.sites["panama city, FL"]
236
+ assert_equal "http://parkersburg.craigslist.org/", geo_listing_us070209.sites["parkersburg-marietta"]
237
+ assert_equal "http://pensacola.craigslist.org/", geo_listing_us070209.sites["pensacola / panhandle"]
238
+ assert_equal "http://peoria.craigslist.org/", geo_listing_us070209.sites["peoria"]
239
+ assert_equal "http://philadelphia.craigslist.org/", geo_listing_us070209.sites["philadelphia"]
240
+ assert_equal "http://phoenix.craigslist.org/", geo_listing_us070209.sites["phoenix"]
241
+ assert_equal "http://pittsburgh.craigslist.org/", geo_listing_us070209.sites["pittsburgh"]
242
+ assert_equal "http://plattsburgh.craigslist.org/", geo_listing_us070209.sites["plattsburgh-adirondacks"]
243
+ assert_equal "http://poconos.craigslist.org/", geo_listing_us070209.sites["poconos"]
244
+ assert_equal "http://porthuron.craigslist.org/", geo_listing_us070209.sites["port huron"]
245
+ assert_equal "http://portland.craigslist.org/", geo_listing_us070209.sites["portland, OR"]
246
+ assert_equal "http://prescott.craigslist.org/", geo_listing_us070209.sites["prescott"]
247
+ assert_equal "http://provo.craigslist.org/", geo_listing_us070209.sites["provo / orem"]
248
+ assert_equal "http://pueblo.craigslist.org/", geo_listing_us070209.sites["pueblo"]
249
+ assert_equal "http://pullman.craigslist.org/", geo_listing_us070209.sites["pullman / moscow"]
250
+ assert_equal "http://quadcities.craigslist.org/", geo_listing_us070209.sites["quad cities, IA/IL"]
251
+ assert_equal "http://raleigh.craigslist.org/", geo_listing_us070209.sites["raleigh / durham / CH"]
252
+ assert_equal "http://reading.craigslist.org/", geo_listing_us070209.sites["reading"]
253
+ assert_equal "http://redding.craigslist.org/", geo_listing_us070209.sites["redding"]
254
+ assert_equal "http://reno.craigslist.org/", geo_listing_us070209.sites["reno / tahoe"]
255
+ assert_equal "http://providence.craigslist.org/", geo_listing_us070209.sites["rhode island"]
256
+ assert_equal "http://richmond.craigslist.org/", geo_listing_us070209.sites["richmond"]
257
+ assert_equal "http://roanoke.craigslist.org/", geo_listing_us070209.sites["roanoke"]
258
+ assert_equal "http://rmn.craigslist.org/", geo_listing_us070209.sites["rochester, MN"]
259
+ assert_equal "http://rochester.craigslist.org/", geo_listing_us070209.sites["rochester, NY"]
260
+ assert_equal "http://rockford.craigslist.org/", geo_listing_us070209.sites["rockford"]
261
+ assert_equal "http://rockies.craigslist.org/", geo_listing_us070209.sites["rocky mountains"]
262
+ assert_equal "http://roseburg.craigslist.org/", geo_listing_us070209.sites["roseburg"]
263
+ assert_equal "http://roswell.craigslist.org/", geo_listing_us070209.sites["roswell / carlsbad"]
264
+ assert_equal "http://sacramento.craigslist.org/", geo_listing_us070209.sites["sacramento"]
265
+ assert_equal "http://saginaw.craigslist.org/", geo_listing_us070209.sites["saginaw-midland-baycity"]
266
+ assert_equal "http://salem.craigslist.org/", geo_listing_us070209.sites["salem, OR"]
267
+ assert_equal "http://saltlakecity.craigslist.org/", geo_listing_us070209.sites["salt lake city"]
268
+ assert_equal "http://sanantonio.craigslist.org/", geo_listing_us070209.sites["san antonio"]
269
+ assert_equal "http://sandiego.craigslist.org/", geo_listing_us070209.sites["san diego"]
270
+ assert_equal "http://slo.craigslist.org/", geo_listing_us070209.sites["san luis obispo"]
271
+ assert_equal "http://sanmarcos.craigslist.org/", geo_listing_us070209.sites["san marcos"]
272
+ assert_equal "http://sandusky.craigslist.org/", geo_listing_us070209.sites["sandusky"]
273
+ assert_equal "http://santabarbara.craigslist.org/", geo_listing_us070209.sites["santa barbara"]
274
+ assert_equal "http://santafe.craigslist.org/", geo_listing_us070209.sites["santa fe / taos"]
275
+ assert_equal "http://sarasota.craigslist.org/", geo_listing_us070209.sites["sarasota-bradenton"]
276
+ assert_equal "http://savannah.craigslist.org/", geo_listing_us070209.sites["savannah"]
277
+ assert_equal "http://scranton.craigslist.org/", geo_listing_us070209.sites["scranton / wilkes-barre"]
278
+ assert_equal "http://seattle.craigslist.org/", geo_listing_us070209.sites["seattle-tacoma"]
279
+ assert_equal "http://sheboygan.craigslist.org/", geo_listing_us070209.sites["sheboygan, WI"]
280
+ assert_equal "http://shreveport.craigslist.org/", geo_listing_us070209.sites["shreveport"]
281
+ assert_equal "http://sierravista.craigslist.org/", geo_listing_us070209.sites["sierra vista"]
282
+ assert_equal "http://siouxcity.craigslist.org/", geo_listing_us070209.sites["sioux city, IA"]
283
+ assert_equal "http://skagit.craigslist.org/", geo_listing_us070209.sites["skagit / island / SJI"]
284
+ assert_equal "http://southbend.craigslist.org/", geo_listing_us070209.sites["south bend / michiana"]
285
+ assert_equal "http://southcoast.craigslist.org/", geo_listing_us070209.sites["south coast"]
286
+ assert_equal "http://sd.craigslist.org/", geo_listing_us070209.sites["south dakota"]
287
+ assert_equal "http://miami.craigslist.org/", geo_listing_us070209.sites["south florida"]
288
+ assert_equal "http://southjersey.craigslist.org/", geo_listing_us070209.sites["south jersey"]
289
+ assert_equal "http://semo.craigslist.org/", geo_listing_us070209.sites["southeast missouri"]
290
+ assert_equal "http://smd.craigslist.org/", geo_listing_us070209.sites["southern maryland"]
291
+ assert_equal "http://swmi.craigslist.org/", geo_listing_us070209.sites["southwest michigan"]
292
+ assert_equal "http://spacecoast.craigslist.org/", geo_listing_us070209.sites["space coast"]
293
+ assert_equal "http://spokane.craigslist.org/", geo_listing_us070209.sites["spokane / coeur d'alene"]
294
+ assert_equal "http://springfieldil.craigslist.org/", geo_listing_us070209.sites["springfield, IL"]
295
+ assert_equal "http://springfield.craigslist.org/", geo_listing_us070209.sites["springfield, MO"]
296
+ assert_equal "http://staugustine.craigslist.org/", geo_listing_us070209.sites["st augustine"]
297
+ assert_equal "http://stcloud.craigslist.org/", geo_listing_us070209.sites["st cloud"]
298
+ assert_equal "http://stgeorge.craigslist.org/", geo_listing_us070209.sites["st george"]
299
+ assert_equal "http://stlouis.craigslist.org/", geo_listing_us070209.sites["st louis, MO"]
300
+ assert_equal "http://pennstate.craigslist.org/", geo_listing_us070209.sites["state college"]
301
+ assert_equal "http://stillwater.craigslist.org/", geo_listing_us070209.sites["stillwater"]
302
+ assert_equal "http://stockton.craigslist.org/", geo_listing_us070209.sites["stockton"]
303
+ assert_equal "http://syracuse.craigslist.org/", geo_listing_us070209.sites["syracuse"]
304
+ assert_equal "http://tallahassee.craigslist.org/", geo_listing_us070209.sites["tallahassee"]
305
+ assert_equal "http://tampa.craigslist.org/", geo_listing_us070209.sites["tampa bay area"]
306
+ assert_equal "http://terrahaute.craigslist.org/", geo_listing_us070209.sites["terre haute"]
307
+ assert_equal "http://texarkana.craigslist.org/", geo_listing_us070209.sites["texarkana"]
308
+ assert_equal "http://toledo.craigslist.org/", geo_listing_us070209.sites["toledo"]
309
+ assert_equal "http://topeka.craigslist.org/", geo_listing_us070209.sites["topeka"]
310
+ assert_equal "http://treasure.craigslist.org/", geo_listing_us070209.sites["treasure coast"]
311
+ assert_equal "http://tricities.craigslist.org/", geo_listing_us070209.sites["tri-cities, TN"]
312
+ assert_equal "http://tucson.craigslist.org/", geo_listing_us070209.sites["tucson"]
313
+ assert_equal "http://tulsa.craigslist.org/", geo_listing_us070209.sites["tulsa"]
314
+ assert_equal "http://tuscaloosa.craigslist.org/", geo_listing_us070209.sites["tuscaloosa"]
315
+ assert_equal "http://twinfalls.craigslist.org/", geo_listing_us070209.sites["twin falls"]
316
+ assert_equal "http://easttexas.craigslist.org/", geo_listing_us070209.sites["tyler / east TX"]
317
+ assert_equal "http://up.craigslist.org/", geo_listing_us070209.sites["upper peninsula"]
318
+ assert_equal "http://utica.craigslist.org/", geo_listing_us070209.sites["utica"]
319
+ assert_equal "http://valdosta.craigslist.org/", geo_listing_us070209.sites["valdosta"]
320
+ assert_equal "http://ventura.craigslist.org/", geo_listing_us070209.sites["ventura county"]
321
+ assert_equal "http://burlington.craigslist.org/", geo_listing_us070209.sites["vermont"]
322
+ assert_equal "http://victoriatx.craigslist.org/", geo_listing_us070209.sites["victoria, TX"]
323
+ assert_equal "http://visalia.craigslist.org/", geo_listing_us070209.sites["visalia-tulare"]
324
+ assert_equal "http://waco.craigslist.org/", geo_listing_us070209.sites["waco"]
325
+ assert_equal "http://washingtondc.craigslist.org/", geo_listing_us070209.sites["washington, DC"]
326
+ assert_equal "http://waterloo.craigslist.org/", geo_listing_us070209.sites["waterloo / cedar falls"]
327
+ assert_equal "http://watertown.craigslist.org/", geo_listing_us070209.sites["watertown"]
328
+ assert_equal "http://wausau.craigslist.org/", geo_listing_us070209.sites["wausau"]
329
+ assert_equal "http://wenatchee.craigslist.org/", geo_listing_us070209.sites["wenatchee"]
330
+ assert_equal "http://wv.craigslist.org/", geo_listing_us070209.sites["west virginia (old)"]
331
+ assert_equal "http://westky.craigslist.org/", geo_listing_us070209.sites["western KY"]
332
+ assert_equal "http://westmd.craigslist.org/", geo_listing_us070209.sites["western maryland"]
333
+ assert_equal "http://westernmass.craigslist.org/", geo_listing_us070209.sites["western massachusetts"]
334
+ assert_equal "http://westslope.craigslist.org/", geo_listing_us070209.sites["western slope"]
335
+ assert_equal "http://wheeling.craigslist.org/", geo_listing_us070209.sites["wheeling, WV"]
336
+ assert_equal "http://wichita.craigslist.org/", geo_listing_us070209.sites["wichita"]
337
+ assert_equal "http://wichitafalls.craigslist.org/", geo_listing_us070209.sites["wichita falls"]
338
+ assert_equal "http://williamsport.craigslist.org/", geo_listing_us070209.sites["williamsport"]
339
+ assert_equal "http://wilmington.craigslist.org/", geo_listing_us070209.sites["wilmington, NC"]
340
+ assert_equal "http://winstonsalem.craigslist.org/", geo_listing_us070209.sites["winston-salem"]
341
+ assert_equal "http://worcester.craigslist.org/", geo_listing_us070209.sites["worcester / central MA"]
342
+ assert_equal "http://wyoming.craigslist.org/", geo_listing_us070209.sites["wyoming"]
343
+ assert_equal "http://yakima.craigslist.org/", geo_listing_us070209.sites["yakima"]
344
+ assert_equal "http://york.craigslist.org/", geo_listing_us070209.sites["york, PA"]
345
+ assert_equal "http://youngstown.craigslist.org/", geo_listing_us070209.sites["youngstown"]
346
+ assert_equal "http://yubasutter.craigslist.org/", geo_listing_us070209.sites["yuba-sutter"]
347
+ assert_equal "http://yuma.craigslist.org/", geo_listing_us070209.sites["yuma"]
348
+
349
+ geo_listing_cn070209 = CraigScrape::GeoListings.new relative_uri_for(
350
+ 'geolisting_samples/geo_listing_cn070209.html'
351
+ )
352
+ assert_equal "china", geo_listing_cn070209.location
353
+ assert_equal 6, geo_listing_cn070209.sites.length
354
+ assert_equal "http://beijing.craigslist.com.cn/", geo_listing_cn070209.sites["beijing"]
355
+ assert_equal "http://guangzhou.craigslist.com.cn/", geo_listing_cn070209.sites["guangzhou"]
356
+ assert_equal "http://hangzhou.craigslist.org/", geo_listing_cn070209.sites["hangzhou"]
357
+ assert_equal "http://hongkong.craigslist.org/", geo_listing_cn070209.sites["hong kong"]
358
+ assert_equal "http://shanghai.craigslist.com.cn/", geo_listing_cn070209.sites["shanghai"]
359
+ assert_equal "http://shenzhen.craigslist.org/", geo_listing_cn070209.sites["shenzhen"]
360
+
361
+ geo_listing_ca070209 = CraigScrape::GeoListings.new relative_uri_for(
362
+ 'geolisting_samples/geo_listing_ca070209.html'
363
+ )
364
+ assert_equal "canada", geo_listing_ca070209.location
365
+ assert_equal 47, geo_listing_ca070209.sites.length
366
+ assert_equal "http://barrie.craigslist.ca/", geo_listing_ca070209.sites["barrie"]
367
+ assert_equal "http://belleville.craigslist.ca/", geo_listing_ca070209.sites["belleville, ON"]
368
+ assert_equal "http://calgary.craigslist.ca/", geo_listing_ca070209.sites["calgary"]
369
+ assert_equal "http://chatham.craigslist.ca/", geo_listing_ca070209.sites["chatham-kent"]
370
+ assert_equal "http://comoxvalley.craigslist.ca/", geo_listing_ca070209.sites["comox valley"]
371
+ assert_equal "http://cornwall.craigslist.ca/", geo_listing_ca070209.sites["cornwall, ON"]
372
+ assert_equal "http://cranbrook.craigslist.ca/", geo_listing_ca070209.sites["cranbrook, BC"]
373
+ assert_equal "http://edmonton.craigslist.ca/", geo_listing_ca070209.sites["edmonton"]
374
+ assert_equal "http://abbotsford.craigslist.ca/", geo_listing_ca070209.sites["fraser valley"]
375
+ assert_equal "http://ftmcmurray.craigslist.ca/", geo_listing_ca070209.sites["ft mcmurray"]
376
+ assert_equal "http://guelph.craigslist.ca/", geo_listing_ca070209.sites["guelph"]
377
+ assert_equal "http://halifax.craigslist.ca/", geo_listing_ca070209.sites["halifax"]
378
+ assert_equal "http://hamilton.craigslist.ca/", geo_listing_ca070209.sites["hamilton-burlington"]
379
+ assert_equal "http://kamloops.craigslist.ca/", geo_listing_ca070209.sites["kamloops"]
380
+ assert_equal "http://kelowna.craigslist.ca/", geo_listing_ca070209.sites["kelowna"]
381
+ assert_equal "http://kingston.craigslist.ca/", geo_listing_ca070209.sites["kingston, ON"]
382
+ assert_equal "http://kitchener.craigslist.ca/", geo_listing_ca070209.sites["kitchener-waterloo-cambridge"]
383
+ assert_equal "http://lethbridge.craigslist.ca/", geo_listing_ca070209.sites["lethbridge"]
384
+ assert_equal "http://londonon.craigslist.ca/", geo_listing_ca070209.sites["london, ON"]
385
+ assert_equal "http://montreal.craigslist.ca/", geo_listing_ca070209.sites["montreal"]
386
+ assert_equal "http://nanaimo.craigslist.ca/", geo_listing_ca070209.sites["nanaimo"]
387
+ assert_equal "http://newbrunswick.craigslist.ca/", geo_listing_ca070209.sites["new brunswick"]
388
+ assert_equal "http://newfoundland.craigslist.ca/", geo_listing_ca070209.sites["newfoundland / labrador"]
389
+ assert_equal "http://niagara.craigslist.ca/", geo_listing_ca070209.sites["niagara region"]
390
+ assert_equal "http://ottawa.craigslist.ca/", geo_listing_ca070209.sites["ottawa-hull-gatineau"]
391
+ assert_equal "http://owensound.craigslist.ca/", geo_listing_ca070209.sites["owen sound"]
392
+ assert_equal "http://peterborough.craigslist.ca/", geo_listing_ca070209.sites["peterborough"]
393
+ assert_equal "http://pei.craigslist.ca/", geo_listing_ca070209.sites["prince edward island"]
394
+ assert_equal "http://princegeorge.craigslist.ca/", geo_listing_ca070209.sites["prince george"]
395
+ assert_equal "http://quebec.craigslist.ca/", geo_listing_ca070209.sites["quebec city"]
396
+ assert_equal "http://reddeer.craigslist.ca/", geo_listing_ca070209.sites["red deer"]
397
+ assert_equal "http://regina.craigslist.ca/", geo_listing_ca070209.sites["regina"]
398
+ assert_equal "http://saguenay.craigslist.ca/", geo_listing_ca070209.sites["saguenay"]
399
+ assert_equal "http://sarnia.craigslist.ca/", geo_listing_ca070209.sites["sarnia"]
400
+ assert_equal "http://saskatoon.craigslist.ca/", geo_listing_ca070209.sites["saskatoon"]
401
+ assert_equal "http://soo.craigslist.ca/", geo_listing_ca070209.sites["sault ste marie, ON"]
402
+ assert_equal "http://sherbrooke.craigslist.ca/", geo_listing_ca070209.sites["sherbrooke"]
403
+ assert_equal "http://sudbury.craigslist.ca/", geo_listing_ca070209.sites["sudbury"]
404
+ assert_equal "http://territories.craigslist.ca/", geo_listing_ca070209.sites["territories"]
405
+ assert_equal "http://thunderbay.craigslist.ca/", geo_listing_ca070209.sites["thunder bay"]
406
+ assert_equal "http://toronto.craigslist.ca/", geo_listing_ca070209.sites["toronto"]
407
+ assert_equal "http://troisrivieres.craigslist.ca/", geo_listing_ca070209.sites["trois-rivieres"]
408
+ assert_equal "http://vancouver.craigslist.ca/", geo_listing_ca070209.sites["vancouver, BC"]
409
+ assert_equal "http://victoria.craigslist.ca/", geo_listing_ca070209.sites["victoria"]
410
+ assert_equal "http://whistler.craigslist.ca/", geo_listing_ca070209.sites["whistler, BC"]
411
+ assert_equal "http://windsor.craigslist.ca/", geo_listing_ca070209.sites["windsor"]
412
+ assert_equal "http://winnipeg.craigslist.ca/", geo_listing_ca070209.sites["winnipeg"]
413
+
414
+ geo_listing_ca_sk07020 = CraigScrape::GeoListings.new relative_uri_for(
415
+ 'geolisting_samples/geo_listing_ca_sk070209.html'
416
+ )
417
+ assert_equal "canada", geo_listing_ca_sk07020.location
418
+ assert_equal(
419
+ { "saskatoon" => "http://saskatoon.craigslist.ca/", "regina" => "http://regina.craigslist.ca/" },
420
+ geo_listing_ca_sk07020.sites
421
+ )
422
+
423
+ end
424
+
425
+ end