barnie 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,112 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://productsearch.barnesandnoble.com:80/search/results.aspx?ISBNLIST=9780486272351
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - iPhone company details
10
+ connection:
11
+ - keep-alive
12
+ keep-alive:
13
+ - "300"
14
+ accept-encoding:
15
+ - gzip,identity
16
+ accept-language:
17
+ - en-us,en;q=0.5
18
+ host:
19
+ - productsearch.barnesandnoble.com
20
+ accept-charset:
21
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
22
+ response: !ruby/struct:VCR::Response
23
+ status: !ruby/struct:VCR::ResponseStatus
24
+ code: 200
25
+ message: OK
26
+ headers:
27
+ server:
28
+ - Microsoft-IIS/6.0
29
+ p3p:
30
+ - CP="CAO DSP COR ADM DEV TAI PSA IVDo CONo HIS TELo DEL SAMo UNRo LEG PRE"
31
+ x-powered-by:
32
+ - ASP.NET
33
+ x-aspnet-version:
34
+ - 2.0.50727
35
+ cache-control:
36
+ - private, no-store
37
+ content-type:
38
+ - text/html; charset=utf-8
39
+ vary:
40
+ - Accept-Encoding
41
+ content-encoding:
42
+ - gzip
43
+ content-length:
44
+ - "2241"
45
+ date:
46
+ - Thu, 25 Nov 2010 17:33:48 GMT
47
+ connection:
48
+ - keep-alive
49
+ set-cookie:
50
+ - bnMobile=Y&device=Y&type=iphone&state=persist; domain=.barnesandnoble.com; path=/
51
+ - bnMobileCMS=cjsval=1853641&cjvf=7; domain=barnesandnoble.com; path=/
52
+ - bnMobileCMV=18536416174267030322489; domain=barnesandnoble.com; expires=Wed, 25-Nov-2020 17:33:48 GMT; path=/
53
+ - csxslt=no; domain=.barnesandnoble.com; expires=Fri, 31-Dec-9999 23:59:59 GMT; path=/
54
+ - datacenter=ny;path=/;domain=barnesandnoble.com;
55
+ - pds%5Flife=d=AQAG6sM%2bYn8kc4QZClj79WGgnVa4RHyn%2bbpllvJEhYib82J1eX%2b9QTPSwzuPJRVtvI2cT8JlzOeeXcXzLMKs32r6&v=5; domain=.barnesandnoble.com; expires=Tue, 24-Nov-2015 17:33:48 GMT; path=/
56
+ - pds%5Fsess=d=AQBiC8fq7R%2fvOVHxBT33ZcSsCUlD2Luz89Tu19Z8n7uyJSYZLQrkXqIzO0RrGcovnbDOvbad%2fkivk9G135IVxygOAbZnXUbMu0jmwb3m1BCZxnBm5nDfQInapQLFgk3DK8U%3d&v=5; domain=.barnesandnoble.com; path=/
57
+ - pds%5Fvcart%5Fsess=d=3RZ0LSAAg0JdsHLzjc8ESPV8pvEXQBupqSJyjQ%2br5vUfuHLNWgAEAAIAaQAAAAUA&v=5; domain=.barnesandnoble.com; path=/
58
+ - userid=IV5wjTHNV9; domain=.barnesandnoble.com; expires=Wed, 25-Nov-2015 17:33:48 GMT; path=/
59
+ - xx4tyNo=mM6wjTHNU9; domain=.barnesandnoble.com; path=/
60
+ body: !binary |
61
+ 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
111
+
112
+ http_version: "1.1"
@@ -0,0 +1,248 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: http://productsearch.barnesandnoble.com:80/search/results.aspx?ISBNLIST=9780073383224,9780073383231,9780073383682,9780073383699,9780073383705,9780073383743,9780073383750,9780073383774,9780073383781,9780073383798,9780073383804,9780073383811,9780073383835,9780073383842,9780073383859,9780073383941,9780073383972,9780073383996,9780073384009,9780073384016,9780073384085,9780073384092,9780073384108,9780073384115,9780073384122,9780073384160,9780073384177,9780073384184,9780073384191,9780073384207,9780073384214,9780073384221,9780073384313,9780073384580,9780073384597,9780073384610,9780073384627,9780073384894,9780073384986,9780073384993,9780073385006,9780073385013,9780073385020,9780073385037,9780073385044,9780073385051,9780073385075,9780073385082,9780073385099,9780073385105
6
+ body:
7
+ headers:
8
+ accept:
9
+ - "*/*"
10
+ user-agent:
11
+ - iPhone company details
12
+ connection:
13
+ - keep-alive
14
+ keep-alive:
15
+ - "300"
16
+ accept-encoding:
17
+ - gzip,identity
18
+ accept-language:
19
+ - en-us,en;q=0.5
20
+ host:
21
+ - productsearch.barnesandnoble.com
22
+ accept-charset:
23
+ - ISO-8859-1,utf-8;q=0.7,*;q=0.7
24
+ response: !ruby/struct:VCR::Response
25
+ status: !ruby/struct:VCR::ResponseStatus
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ server:
30
+ - Microsoft-IIS/6.0
31
+ p3p:
32
+ - CP="CAO DSP COR ADM DEV TAI PSA IVDo CONo HIS TELo DEL SAMo UNRo LEG PRE"
33
+ x-powered-by:
34
+ - ASP.NET
35
+ x-aspnet-version:
36
+ - 2.0.50727
37
+ cache-control:
38
+ - private, no-store
39
+ content-type:
40
+ - text/html; charset=utf-8
41
+ vary:
42
+ - Accept-Encoding
43
+ content-encoding:
44
+ - gzip
45
+ content-length:
46
+ - "8296"
47
+ date:
48
+ - Fri, 01 Oct 2010 10:34:04 GMT
49
+ connection:
50
+ - keep-alive
51
+ set-cookie:
52
+ - xx4tyNo=ic1XyQxMz2; domain=.barnesandnoble.com; path=/
53
+ - usertrackid=Nl2XyQxM03; domain=.barnesandnoble.com; expires=Thu, 01-Oct-2015 10:34:04 GMT; path=/
54
+ - bnMobile=Y&device=Y&type=iphone&state=persist; domain=.barnesandnoble.com; path=/
55
+ - pds%5Flife=d=AQD5b2tIIRRvYN%2bzItLENHoW793heH0iWKWS0GOsDXJZ4f5Fcyu1HWM7BSz7WONYhlN1n04Pp9T9RjY7nNk%2bHn3d&v=5; domain=.barnesandnoble.com; expires=Wed, 30-Sep-2015 10:34:04 GMT; path=/
56
+ - pds%5Fsess=d=AQBxX15yOn4S20g8gdmPAidEDDNk34n5D83X%2bqS0Dl%2f0nE0Fl79TvKuVaJYJdBICSGuBY93I6prejyJ0wsiHKqOGwQhlYFIDygx1Wlj4QcvAzOJkaciPjoZvpAMvctFzEG4%3d&v=5; domain=.barnesandnoble.com; path=/
57
+ - pds%5Fvcart%5Fsess=d=UpjxdiAAqQmcvZA9UHoqLDG1LmiITxaQ95G4FAwDASYOtqqWWQAEAAIAaQAAAAQA&v=5; domain=.barnesandnoble.com; path=/
58
+ - bnMobileCMV=47028635182914599185361; domain=barnesandnoble.com; expires=Thu, 01-Oct-2020 10:34:04 GMT; path=/
59
+ - bnMobileCMS=cjsval=4702863&cjvf=7; domain=barnesandnoble.com; path=/
60
+ - datacenter=nj;path=/;domain=barnesandnoble.com;
61
+ body: !binary |
62
+ H4sIAAAAAAAAAO1d63LjNrL+vVu174BVbW6lIcWrSDqWUrLHc8naHh/LsznZ
63
+ P1MUBUnMUKTCiz3a2ofJ3/MaebLTDYAyKd8kynQcWVWJh4BIsNFEf41udAP7
64
+ f3/94fDi57MjMkmnATn7eHD8/pA0pFbrw0mv1Xp98Zr877uLk2NyEg38gBJV
65
+ 1lqto9MGaUzSdLbXal1dXcnRjIZT9rsbBL4belSO4nErpd4EW2h9wbYlfoeq
66
+ ycN02OjuYx38pe6w+7e/ErJ/cnTRI9ioRH/N/MtO4zAKUxqm0sV8RhvE46VO
67
+ I6Vf0hY+/D3xJm6c0LSTpSNJbTd4O6mfBrR74MYhTX7/7Wt3Ovv+999Oo0FA
68
+ ZS+aEon0AuhnHA0zLyV96sbeZI/st/hj+1OauiR0p7TT+EznV1E8TArv5q2S
69
+ r8lD7TVa3f3ADz+TmAadRpLOA5pMKE0bJIXeiE54CbQ9iemokzPTn7pjmsgD
70
+ 9ho3HIb5a1qzmCZRFns0aXE+4tPi8pM7vJSxse5+4sX+LC2+5Bf30uW1DZLE
71
+ XqVX/VJ60y/4ohZvs8SwS59ezaI4LTDsyh+mk86QXvoelVjhFfFDP/XdQEo8
72
+ N6AdVVZekan7xZ9m02JVltCYlV2gqwMVoyieuqk0pDCsUj8KO2EkvniBhOWb
73
+ SuMmoLNJFFLx4H6Ljb39QTScd/eH/iXxh50G9lPCH2jcIG7gj8NOw4Pnodjd
74
+ d8tfC4f+LfwTTPPDIf0iu8kMHvSnY2isMIBwVPJBBCOA+uMJ/GZoDcL51VAd
75
+ uB7A4KNxp6FU/3Dj0ZfW1E3ST0E0juSxP8Iv58L/0F1kQanXvyZs8MItvMPd
76
+ W3+WkMUSjAMU8yH/AvANsJbAh5hEcP8sSmAQuPwzNVogzt5n/nTxGnnzBZkT
77
+ zrJ8yE784ZDCV+NfcwY9bZBLN8ig4MVRksy4nC0ovedZuHPxbBb6lygdMzck
78
+ XuAmSacB44oGja4QWBjP8BvcAYMExFjcw0tsGPFGvUkEAxlaimZYnTcPqJcT
79
+ Bt+KPUSH3QIuJPst/oRgF2NZuY1BFH1udA/g7wo3U7wbxJCueP+lP6Qw6F//
80
+ 67UYegdBJsXu/OEnp1nie43uCf6zQifceOz6YQPhFy/IivR99gFmu4cTPxjG
81
+ NPwmWfU5RDjOuAtxtcJDUQQi+TGhQ8GLDzCCohF8Kj9MV2CIOwZST9yx+x8f
82
+ BPDhBxDSwiEoKuhgfvnwUxP4XO+iKRU0vvVHK9CWRnN4ywX8zR+DUbvq8Bjj
83
+ vY3uv/B61Qf9ZAAf+33/4HRxL0gSEwCOHkzzAQ9gZhDvBXSUfi/gbk+fffm+
84
+ IZDoNsF8E8ULqeRSLn7/NaPxXEqmIHRFbZqLKPsZpND/DxR0wE7QLcD1MYNV
85
+ RWkstTbI0jQK30/HeVsMXhdAbOrX+IyNMRB/G22GyOPo09Un7VOEQ+GzQOVB
86
+ TBiToP/AJWQMIupdTFwwTvzNAZsXUdvkRKvXOkVQ38i77kUxBcSOfS8p92fo
87
+ pq5c+JV1hQbZ1A/dlP6QgkpQ2fjy/I6jaLqq6iYrX4Zah/eTFZO0o2q26WiO
88
+ ZhiWoot71I4hqzJvgXqd9/0Pkg13Sbxm5nc4Jn+lKec0yYI02eOj2Rt3Tj4c
89
+ vD8+2uM3kH7mAWeTURbw19EO/zfumApv61LtiAutg537Sne/0kbwX0mP3PLl
90
+ 4JZEUDGKORVMXX2lj3C0H7/vX3ylDx3LVhRLF6/QO4qiiE5cfnLV62IW1Ph2
91
+ 3dY1zfhK8wplXS2V27ZWLjtOqWwpZrls6OWyqZTLVvl9ll1+n+XYpbKtlO+3
92
+ 1fL9tl5+v22U6YXRUSo7Rvl5xyrf7zjtYtlQFKdcVpd+t81y2Sm1Z6iKXS6r
93
+ 5ftVben+tlIuW1a5bBvlslPqj6Ep5fs1tXy/ppXv19XS9zJMu/x+0ym311bL
94
+ v7e18u+2U36fY5f55Til95mK0i6X1aXfNaVc1q1y2TDKZVMtly2zXC6PZ1Mp
95
+ j2dTVTgexSMu/sHsTkz5hYY5mP2SAbABTml2WzdVW3NUYJyj2qbezu9Iru8Q
96
+ NZejjtVYmimjRSFMk7w+wZkz2A4wZVhMmbNgMc9Eo2mhZcFwBI2YxlE4Bl0+
97
+ Iydu6k1QG4u6/RbcULz5vzdqFpZKS0y7iyjyw/nr884po7//76OOyrGyf37R
98
+ 6fdg5kYTAKYgoDhLcWt82QW87AKN7npfcwavgamdt/ya/VYW5Jf3K1n2Ia+v
99
+ 8k+KIC6hdQnzXLQOC20tfo7dEOamqnz9+PIdoKslPnNyg5sW5p0aonXkRWDT
100
+ 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
246
+ 8M8knQbd/wc1bmfMnzIBAA==
247
+
248
+ http_version: "1.1"
@@ -0,0 +1,7 @@
1
+ require "rubygems"
2
+ require "bundler/setup"
3
+ require "rspec"
4
+
5
+ require File.expand_path("../../lib/barnie", __FILE__)
6
+
7
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -0,0 +1,12 @@
1
+ require 'bookland'
2
+
3
+ def isbns_fixture
4
+ isbns = File.new(File.expand_path("../../fixtures/asins.txt", __FILE__), "r").
5
+ map { |line| Bookland::ISBN.to_13 line.chomp }
6
+
7
+ if block_given?
8
+ isbns.each { |isbn| yield isbn }
9
+ end
10
+
11
+ isbns
12
+ end
@@ -0,0 +1,15 @@
1
+ require "launchy"
2
+
3
+ class Mechanize
4
+ def show_me_the_page
5
+ file_path = ::File.expand_path("../m.#{Time.now.to_i}.html", __FILE__)
6
+
7
+ file = ::File.new(file_path, "w")
8
+ file.write(current_page.body)
9
+ file.close
10
+
11
+ Launchy::Browser.run("file://#{file_path}")
12
+
13
+ system("sleep 2 && rm #{file_path} &")
14
+ end
15
+ end
@@ -0,0 +1,8 @@
1
+ require 'vcr'
2
+
3
+ VCR.config do |c|
4
+ c.cassette_library_dir = File.expand_path("../../fixtures", __FILE__)
5
+ c.stub_with :webmock
6
+ c.ignore_localhost = true
7
+ c.default_cassette_options = { :record => :new_episodes }
8
+ end
@@ -0,0 +1,122 @@
1
+ require "spec_helper"
2
+
3
+ module Barnie
4
+ describe Client do
5
+ let (:client) do
6
+ Barnie.new("company details")
7
+ end
8
+
9
+ let(:isbns) do
10
+ [
11
+ "9780142404447", "9780080433042", "9780001053335", "9781902741154",
12
+ "9780001053373", "9781902084008", "9781903098189", "9780001053380",
13
+ "9780195177312", "9780001053397", "9780201549768", "9780141310763",
14
+ "9780142404430", "9780080433028", "9780080448527", "9780001053618",
15
+ "9781903098196", "9780152022624", "9781903098202", "9780001053656",
16
+ "9780203940174", "9780152008680", "9780080426648", "9780001053731",
17
+ "9781902741109", "9780195366877", "9782715219359", "9780001053748",
18
+ "9781905334186", "9780001054097", "9780152022617", "9780080441993",
19
+ "9780001054608", "9780203940112", "9781905340309", "9780152008673",
20
+ "9780080426631", "9780001054646", "9781905340279", "9781902934006",
21
+ "9780001054677", "9780001054691", "9781920888855", "9781920888862",
22
+ "9780152022600", "9780001054721", "9780203939994", "9780195366860",
23
+ "9780152008666", "9781902932255"
24
+ ]
25
+ end
26
+
27
+ before do
28
+ VCR.insert_cassette('barnie_client')
29
+ client.isbns = isbns
30
+ end
31
+
32
+ after do
33
+ VCR.eject_cassette
34
+ end
35
+
36
+ it "includes Helpers" do
37
+ Client.ancestors.should include Helpers
38
+ end
39
+
40
+ it "requires user agent" do
41
+ lambda { Barnie::Client.new }.should raise_error /wrong number of arguments/
42
+ end
43
+
44
+ it "sets up a mechanize agent" do
45
+ client.instance_variable_get(:@agent).should be_an_instance_of Mechanize
46
+ end
47
+
48
+ it "sets ISBNs to query" do
49
+ client.isbns.should == isbns
50
+ end
51
+
52
+ it "returns the URI with which to query Barnes & Noble" do
53
+ client.send(:uri).should be_an_instance_of URI::HTTP
54
+ end
55
+
56
+ it "performs a request" do
57
+ page = client.request
58
+ page.should be_an_instance_of Mechanize::Page
59
+ end
60
+
61
+
62
+ describe "#books" do
63
+ let(:books) do
64
+ client.books
65
+ end
66
+
67
+ it "are an array of hashes" do
68
+ books.should be_an_instance_of Array
69
+ books.each { |book| book.should be_an_instance_of Hash }
70
+ end
71
+
72
+ it "must have a title and ISBN" do
73
+ books.each do |book|
74
+ book[:title].should_not be_nil
75
+ book[:isbn].should_not be_nil
76
+ end
77
+ end
78
+
79
+ it "has authors, binding, ships_in and price" do
80
+ books.each do |book|
81
+ book.has_key?(:authors).should be_true
82
+ book.has_key?(:binding).should be_true
83
+ book.has_key?(:ships_in).should be_true
84
+ book.has_key?(:price).should be_true
85
+ end
86
+ end
87
+
88
+ it "returns a result for a single ISBN" do
89
+ client.isbns = [isbns.first]
90
+ books = client.books
91
+
92
+ books.size.should eql 1
93
+ book = books.first
94
+ book[:title].should_not be_nil
95
+ book[:isbn].should_not be_nil
96
+ book.should have_key(:price)
97
+ book.should have_key(:ships_in)
98
+ end
99
+
100
+ context "when page does not include #prod-container element" do
101
+
102
+ let(:mock_page) do
103
+ page = mock("response")
104
+ page.stub!(:search).and_return(nil)
105
+ page
106
+ end
107
+
108
+ context "when page body is empty and HTTP is OK" do
109
+ before do
110
+ mock_page.stub!(:body).and_return("")
111
+ mock_page.stub!(:code).and_return(200)
112
+ client.stub!(:request).and_return(mock_page)
113
+ end
114
+
115
+ it "throws a Barnie error" do
116
+ lambda {client.books}.should raise_error Barnie::Error
117
+ end
118
+ end
119
+ end
120
+ end
121
+ end
122
+ end