patentscope 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +26 -0
- data/.rspec +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +4 -0
- data/License.txt +22 -0
- data/README.md +257 -0
- data/Rakefile +27 -0
- data/lib/patentscope.rb +52 -0
- data/lib/patentscope/client.rb +32 -0
- data/lib/patentscope/configuration.rb +42 -0
- data/lib/patentscope/pct_doc_number.rb +45 -0
- data/lib/patentscope/version.rb +5 -0
- data/lib/patentscope/webservice.rb +74 -0
- data/lib/patentscope/webservice_soap_builder.rb +43 -0
- data/patentscope.gemspec +27 -0
- data/spec/client_spec.rb +75 -0
- data/spec/configuration_spec.rb +138 -0
- data/spec/patentscope_spec.rb +91 -0
- data/spec/pct_app_number_spec.rb +256 -0
- data/spec/pct_pub_number_spec.rb +220 -0
- data/spec/spec_helper.rb +29 -0
- data/spec/webservice_soap_builder_spec.rb +318 -0
- data/spec/webservice_spec.rb +97 -0
- data/spec/wipo_test_suite_doc_id_examples.yaml +298 -0
- data/spec/wipo_test_suite_ia_number_examples.yaml +40 -0
- data/spec/wipo_test_suite_spec.rb +44 -0
- metadata +185 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.setup(:default, :development)
|
3
|
+
|
4
|
+
require 'patentscope'
|
5
|
+
require 'rspec'
|
6
|
+
require 'vcr'
|
7
|
+
require 'yaml'
|
8
|
+
require 'open-uri'
|
9
|
+
|
10
|
+
# generate versions of username and password with unsafe characters encoded
|
11
|
+
unsafe_characters = %q[$&+,/:;=?!@ "'<>#%{}|\^~[]`]
|
12
|
+
escaped_patentscope_webservice_username = URI::escape(ENV['PATENTSCOPE_WEBSERVICE_USERNAME'], unsafe_characters)
|
13
|
+
escaped_patentscope_webservice_password = URI::escape(ENV['PATENTSCOPE_WEBSERVICE_PASSWORD'], unsafe_characters)
|
14
|
+
|
15
|
+
VCR.configure do |config|
|
16
|
+
config.cassette_library_dir = 'spec/cassettes'
|
17
|
+
config.hook_into :webmock
|
18
|
+
config.default_cassette_options = { record: :new_episodes }
|
19
|
+
config.default_cassette_options = { match_requests_on: [:body] }
|
20
|
+
config.configure_rspec_metadata!
|
21
|
+
config.allow_http_connections_when_no_cassette = true
|
22
|
+
config.filter_sensitive_data('*****') { escaped_patentscope_webservice_username }
|
23
|
+
config.filter_sensitive_data('*****') { escaped_patentscope_webservice_password }
|
24
|
+
end
|
25
|
+
|
26
|
+
RSpec.configure do |config|
|
27
|
+
# config.treat_symbols_as_metadata_keys_with_true_values = true
|
28
|
+
config.order = 'random'
|
29
|
+
end
|
@@ -0,0 +1,318 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Patentscope
|
4
|
+
|
5
|
+
describe WebserviceSoapBuilder, :core do
|
6
|
+
before { Patentscope.configure_from_env}
|
7
|
+
|
8
|
+
let(:ws_soap_builder) { WebserviceSoapBuilder.new }
|
9
|
+
|
10
|
+
it "exists" do
|
11
|
+
expect(ws_soap_builder).to_not be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "has the right methods" do
|
15
|
+
expect(ws_soap_builder).to respond_to(:build_envelope)
|
16
|
+
expect(ws_soap_builder).to respond_to(:strip_envelope)
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "build_envelope method" do
|
20
|
+
let(:envelope) { ws_soap_builder.build_envelope('foo', {bar: 'baz'}) }
|
21
|
+
|
22
|
+
it "returns an XML document" do
|
23
|
+
expect(envelope).to include('<?xml')
|
24
|
+
end
|
25
|
+
|
26
|
+
it "has an envelope element" do
|
27
|
+
expect(envelope).to include('<S:Envelope')
|
28
|
+
end
|
29
|
+
|
30
|
+
it "has a namespace definition for the envelope" do
|
31
|
+
expect(envelope).to include('xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"')
|
32
|
+
end
|
33
|
+
|
34
|
+
it "has a body element" do
|
35
|
+
expect(envelope).to include('<S:Body>')
|
36
|
+
end
|
37
|
+
|
38
|
+
it "has an operation element" do
|
39
|
+
expect(envelope).to include('<foo ')
|
40
|
+
end
|
41
|
+
|
42
|
+
it "has a namespace definition for the operation" do
|
43
|
+
expect(envelope).to include('xmlns="http://www.wipo.org/wsdl/ps"')
|
44
|
+
end
|
45
|
+
|
46
|
+
it "has a option key element" do
|
47
|
+
expect(envelope).to include('<bar>')
|
48
|
+
end
|
49
|
+
|
50
|
+
it "has an option value element" do
|
51
|
+
expect(envelope).to include('baz')
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "specific operations" do
|
55
|
+
|
56
|
+
context "get_available_documents" do
|
57
|
+
|
58
|
+
it 'generates an appropriate soap envelope' do
|
59
|
+
envelope = ws_soap_builder.build_envelope(:getAvailableDocuments, { iaNumber: 'SG2009000062' })
|
60
|
+
expect(envelope).to include('<?xml version="1.0"')
|
61
|
+
expect(envelope).to include('<getAvailableDocuments ')
|
62
|
+
expect(envelope).to include('<iaNumber>SG2009000062</iaNumber')
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
context "get_document_content" do
|
67
|
+
|
68
|
+
it 'generates an appropriate soap envelope' do
|
69
|
+
envelope = ws_soap_builder.build_envelope(:getDocumentContent, { docId: 'id50000000125222' })
|
70
|
+
expect(envelope).to include('<?xml version="1.0"')
|
71
|
+
expect(envelope).to include('<getDocumentContent ')
|
72
|
+
expect(envelope).to include('<docId>id50000000125222</docId>')
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
context "get_document_ocr_content" do
|
77
|
+
|
78
|
+
it 'generates an appropriate soap envelope' do
|
79
|
+
envelope = ws_soap_builder.build_envelope(:getDocumentOcrContent, { docId: 'id50000000125222' })
|
80
|
+
expect(envelope).to include('<?xml version="1.0"')
|
81
|
+
expect(envelope).to include('<getDocumentOcrContent ')
|
82
|
+
expect(envelope).to include('<docId>id50000000125222</docId>')
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "get_iasr" do
|
87
|
+
|
88
|
+
it 'generates an appropriate soap envelope' do
|
89
|
+
envelope = ws_soap_builder.build_envelope(:getIASR, { iaNumber: 'SG2009000062' })
|
90
|
+
expect(envelope).to include('<?xml version="1.0"')
|
91
|
+
expect(envelope).to include('<getIASR ')
|
92
|
+
expect(envelope).to include('<iaNumber>SG2009000062</iaNumber')
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context "get_document_table_of_contents" do
|
97
|
+
|
98
|
+
it 'generates an appropriate soap envelope' do
|
99
|
+
envelope = ws_soap_builder.build_envelope(:getDocumentTableOfContents, { docId: 'id50000000125222' })
|
100
|
+
expect(envelope).to include('<?xml version="1.0"')
|
101
|
+
expect(envelope).to include('<getDocumentTableOfContents ')
|
102
|
+
expect(envelope).to include('<docId>id50000000125222</docId>')
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "get_document_content_page" do
|
107
|
+
|
108
|
+
it 'generates an appropriate soap envelope' do
|
109
|
+
envelope = ws_soap_builder.build_envelope(:getDocumentContentPage, { docId: 'id50000000125222', pageId: '000031.tif' })
|
110
|
+
expect(envelope).to include('<?xml version="1.0"')
|
111
|
+
expect(envelope).to include('<getDocumentContentPage ')
|
112
|
+
expect(envelope).to include('<docId>id50000000125222</docId>')
|
113
|
+
expect(envelope).to include('<pageId>000031.tif</pageId>')
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "strip_envelope method" do
|
120
|
+
|
121
|
+
context "getAvailableDocuments operation" do
|
122
|
+
let(:envelope) { '<?xml version="1.0" ?>
|
123
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
124
|
+
<S:Body>
|
125
|
+
<getAvailableDocumentsResponse xmlns="http://www.wipo.org/wsdl/ps">
|
126
|
+
<doc gazette="35/2006" docType="PAMPH" docId="id50000000162179"></doc>
|
127
|
+
<doc docType="WOSA" docId="id50000000125420"></doc>
|
128
|
+
<doc docType="ETIP1" docId="id50000000329130"></doc>
|
129
|
+
<doc priorityNumber="10 2005 008 395.1" docType="PDOC" docId="id50000000116310"></doc> <doc docType="IB304" docId="id50000000116985"></doc>
|
130
|
+
<doc docType="ETWOS" docId="id50000000325635">
|
131
|
+
</doc>
|
132
|
+
</getAvailableDocumentsResponse>
|
133
|
+
</S:Body></S:Envelope>' }
|
134
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getAvailableDocuments) }
|
135
|
+
|
136
|
+
it "retains the xml declaration" do
|
137
|
+
expect(stripped).to include('<?xml')
|
138
|
+
end
|
139
|
+
|
140
|
+
it "strips the Envelope element" do
|
141
|
+
expect(stripped).to_not include('<S:Envelope')
|
142
|
+
end
|
143
|
+
|
144
|
+
it "strips the Body element" do
|
145
|
+
expect(stripped).to_not include('<S:Body>')
|
146
|
+
end
|
147
|
+
|
148
|
+
it "strips the getAvailableDocumentsResponse element" do
|
149
|
+
expect(stripped).to_not include('<getAvailableDocumentsResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
150
|
+
end
|
151
|
+
|
152
|
+
it "retains the inner elements" do
|
153
|
+
expect(stripped).to include('<doc gazette="35/2006" docType="PAMPH" docId="id50000000162179"/>')
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
context "getDocumentContent operation" do
|
158
|
+
let(:envelope) { '<?xml version="1.0" encoding="utf-8"?>
|
159
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
160
|
+
<S:Body>
|
161
|
+
<getDocumentContentResponse xmlns="http://www.wipo.org/wsdl/ps">
|
162
|
+
<documentContent>UEsDBBQACAAIAIyMOy0AAAAAAAAAAAAAAAAKAAAAMDAwMDA...AAAAAA=</documentContent>
|
163
|
+
</getDocumentContentResponse>
|
164
|
+
</S:Body>
|
165
|
+
</S:Envelope>' }
|
166
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getDocumentContent) }
|
167
|
+
|
168
|
+
it "retains the xml declaration" do
|
169
|
+
expect(stripped).to include('<?xml')
|
170
|
+
end
|
171
|
+
|
172
|
+
it "strips the Envelope element" do
|
173
|
+
expect(stripped).to_not include('<S:Envelope')
|
174
|
+
end
|
175
|
+
|
176
|
+
it "strips the Body element" do
|
177
|
+
expect(stripped).to_not include('<S:Body>')
|
178
|
+
end
|
179
|
+
|
180
|
+
it "strips the getDocumentContentResponse element" do
|
181
|
+
expect(stripped).to_not include('<getDocumentContentResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
182
|
+
end
|
183
|
+
|
184
|
+
it "retains the inner elements" do
|
185
|
+
expect(stripped).to include('<documentContent>UEsDBBQACAAIAIyMOy0AAAAAAAAAAAAAAAAKAAAAMDAwMDA...AAAAAA=</documentContent>')
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
context "getDocumentOcrContent operation" do
|
190
|
+
let(:envelope) { '<?xml version="1.0" encoding="utf-8"?>
|
191
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
192
|
+
<S:Body>
|
193
|
+
<getDocumentOcrContentResponse xmlns="http://www.wipo.org/wsdl/ps">
|
194
|
+
<documentContent>JVBERi0xLjQKJeLjz9MKOCAwIG9iago8P...DUKJSVFT0YK</documentContent>
|
195
|
+
</getDocumentOcrContentResponse>
|
196
|
+
</S:Body>
|
197
|
+
</S:Envelope>' }
|
198
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getDocumentOcrContent) }
|
199
|
+
|
200
|
+
it "retains the xml declaration" do
|
201
|
+
expect(stripped).to include('<?xml')
|
202
|
+
end
|
203
|
+
|
204
|
+
it "strips the Envelope element" do
|
205
|
+
expect(stripped).to_not include('<S:Envelope')
|
206
|
+
end
|
207
|
+
|
208
|
+
it "strips the Body element" do
|
209
|
+
expect(stripped).to_not include('<S:Body>')
|
210
|
+
end
|
211
|
+
|
212
|
+
it "strips the getDocumentOcrContentResponse element" do
|
213
|
+
expect(stripped).to_not include('<getDocumentOcrContentResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
214
|
+
end
|
215
|
+
|
216
|
+
it "retains the inner elements" do
|
217
|
+
expect(stripped).to include('<documentContent>JVBERi0xLjQKJeLjz9MKOCAwIG9iago8P...DUKJSVFT0YK</documentContent>')
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
context "getIASR operation" do
|
222
|
+
let(:envelope) { '<?xml version="1.0" encoding="utf-8"?>
|
223
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
224
|
+
<S:Body>
|
225
|
+
<getIASRResponse xmlns="http://www.wipo.org/wsdl/ps">
|
226
|
+
<wo-international-application-status>baz</wo-international-application-status>
|
227
|
+
</getIASRResponse>
|
228
|
+
</S:Body>
|
229
|
+
</S:Envelope>' }
|
230
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getIASR) }
|
231
|
+
|
232
|
+
it "retains the xml declaration" do
|
233
|
+
expect(stripped).to include('<?xml')
|
234
|
+
end
|
235
|
+
|
236
|
+
it "strips the Envelope element" do
|
237
|
+
expect(stripped).to_not include('<S:Envelope')
|
238
|
+
end
|
239
|
+
|
240
|
+
it "strips the Body element" do
|
241
|
+
expect(stripped).to_not include('<S:Body>')
|
242
|
+
end
|
243
|
+
|
244
|
+
it "strips the getIASRResponse element" do
|
245
|
+
expect(stripped).to_not include('<getIASRResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
246
|
+
end
|
247
|
+
|
248
|
+
it "retains the inner elements" do
|
249
|
+
expect(stripped).to include('<wo-international-application-status>baz</wo-international-application-status>')
|
250
|
+
end
|
251
|
+
end
|
252
|
+
|
253
|
+
context "getDocumentTableOfContents operation" do
|
254
|
+
let(:envelope) { '<?xml version=\'1.0\' encoding=\'UTF-8\'?>
|
255
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
256
|
+
<S:Body>
|
257
|
+
<getDocumentTableOfContentsResponse xmlns="http://www.wipo.org/wsdl/ps">
|
258
|
+
<content>000001.tif</content>
|
259
|
+
</getDocumentTableOfContentsResponse>
|
260
|
+
</S:Body>
|
261
|
+
</S:Envelope>' }
|
262
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getDocumentTableOfContents) }
|
263
|
+
|
264
|
+
it "retains the xml declaration" do
|
265
|
+
expect(stripped).to include('<?xml')
|
266
|
+
end
|
267
|
+
|
268
|
+
it "strips the Envelope element" do
|
269
|
+
expect(stripped).to_not include('<S:Envelope')
|
270
|
+
end
|
271
|
+
|
272
|
+
it "strips the Body element" do
|
273
|
+
expect(stripped).to_not include('<S:Body>')
|
274
|
+
end
|
275
|
+
|
276
|
+
it "strips the getDocumentTableOfContentsResponse element" do
|
277
|
+
expect(stripped).to_not include('<getDocumentTableOfContentsResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
278
|
+
end
|
279
|
+
|
280
|
+
it "retains the inner elements" do
|
281
|
+
expect(stripped).to include('<content>000001.tif</content>')
|
282
|
+
end
|
283
|
+
end
|
284
|
+
|
285
|
+
context "getDocumentContentPage operation" do
|
286
|
+
let(:envelope) { '<?xml version="1.0" encoding="utf-8"?>
|
287
|
+
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
|
288
|
+
<S:Body>
|
289
|
+
<getDocumentContentPageResponse xmlns="http://www.wipo.org/wsdl/ps">
|
290
|
+
<pageContent>SUkqAAgAAAASAP4ABAABAAAAAAAAAAABAwABAAAAqwk...//wAQAQAQAQ==</pageContent>
|
291
|
+
</getDocumentContentPageResponse>
|
292
|
+
</S:Body>
|
293
|
+
</S:Envelope>' }
|
294
|
+
let(:stripped) { ws_soap_builder.strip_envelope(envelope, :getDocumentContentPage) }
|
295
|
+
|
296
|
+
it "retains the xml declaration" do
|
297
|
+
expect(stripped).to include('<?xml')
|
298
|
+
end
|
299
|
+
|
300
|
+
it "strips the Envelope element" do
|
301
|
+
expect(stripped).to_not include('<S:Envelope')
|
302
|
+
end
|
303
|
+
|
304
|
+
it "strips the Body element" do
|
305
|
+
expect(stripped).to_not include('<S:Body>')
|
306
|
+
end
|
307
|
+
|
308
|
+
it "strips the getDocumentContentPageResponse element" do
|
309
|
+
expect(stripped).to_not include('<getDocumentContentPageResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
310
|
+
end
|
311
|
+
|
312
|
+
it "retains the inner elements" do
|
313
|
+
expect(stripped).to include('<pageContent>SUkqAAgAAAASAP4ABAABAAAAAAAAAAABAwABAAAAqwk...//wAQAQAQAQ==</pageContent>')
|
314
|
+
end
|
315
|
+
end
|
316
|
+
end
|
317
|
+
end
|
318
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Patentscope
|
4
|
+
|
5
|
+
describe Webservice, :core, :vcr do
|
6
|
+
|
7
|
+
before { Patentscope.configure_from_env}
|
8
|
+
|
9
|
+
let(:webservice) { Webservice.new }
|
10
|
+
|
11
|
+
it "exists" do
|
12
|
+
expect(webservice).to_not be_nil
|
13
|
+
end
|
14
|
+
|
15
|
+
it "has the right methods" do
|
16
|
+
expect(webservice).to respond_to(:wsdl)
|
17
|
+
expect(webservice).to respond_to(:get_available_documents)
|
18
|
+
expect(webservice).to respond_to(:get_document_content)
|
19
|
+
expect(webservice).to respond_to(:get_document_ocr_content)
|
20
|
+
expect(webservice).to respond_to(:get_iasr)
|
21
|
+
expect(webservice).to respond_to(:get_document_table_of_contents)
|
22
|
+
expect(webservice).to respond_to(:get_document_content_page)
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "constants" do
|
26
|
+
it "has a webservice location constant" do
|
27
|
+
expect(Webservice::PATENTSCOPE_WEBSERVICE_LOCATION).to_not be_nil
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "wsdl method" do
|
32
|
+
it "returns a wsdl document" do
|
33
|
+
response = webservice.wsdl
|
34
|
+
expect(response).to include('<?xml')
|
35
|
+
expect(response).to include('<wsdl:definitions')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "get_available_documents method" do
|
40
|
+
it 'returns an appropriate XML document for the get_available_documents operation' do
|
41
|
+
response = webservice.get_available_documents(ia_number: 'SG2009000062')
|
42
|
+
expect(response).to include('<?xml version="1.0"?>')
|
43
|
+
expect(response).to include('<doc ocrPresence="no" docType="RO101" docId="id00000008679651"/>')
|
44
|
+
expect(response).to_not include('<getAvailableDocumentsResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe "get_document_content method" do
|
49
|
+
it 'returns an appropriate XML document for the get_document_content operation' do
|
50
|
+
response = webservice.get_document_content(doc_id: '090063618004ca88')
|
51
|
+
expect(response).to include('<?xml version="1.0"?>')
|
52
|
+
expect(response).to include('<documentContent>')
|
53
|
+
expect(response).to include('nRpZsy7ezxU2/8/fk5JM6HIXReMWymXUCmhYcRgUIjjNk2pDAkdlxox7xiSLm')
|
54
|
+
expect(response).to_not include('<getDocumentContentResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "get_document_ocr_content method" do
|
59
|
+
it 'returns an appropriate XML document for the get_document_ocr_content operation' do
|
60
|
+
response = webservice.get_document_ocr_content(doc_id: 'id00000015801579')
|
61
|
+
expect(response).to include('<?xml version="1.0"?>')
|
62
|
+
expect(response).to include('<documentContent>')
|
63
|
+
expect(response).to include('XdDb9Ain4kev61wgZc36X022QPCEZZASS2Rwpcy4Hx7I5GYHhriRwpsDwoX9tgjgZwcEGGEksgthsHsNtkFmyGZYQIGGCCX3dhggRDTgEEDNgVgkvuw2ECDDSYMEF')
|
64
|
+
expect(response).to_not include('<getDocumentOcrContentResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "get_iasr method" do
|
69
|
+
it 'returns an appropriate XML document for the get_iasr operation' do
|
70
|
+
response = webservice.get_iasr(ia_number: 'SG2009000062')
|
71
|
+
expect(response).to include('<?xml version="1.0"?>')
|
72
|
+
expect(response).to include('<wo-international-application-status>')
|
73
|
+
expect(response).to include('MESENCHYMAL STEM CELL PARTICLES')
|
74
|
+
expect(response).to_not include('<getIASRResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe "get_document_table_of_contents method" do
|
79
|
+
it 'returns an appropriate XML document for the get_document_table_of_contents operation' do
|
80
|
+
response = webservice.get_document_table_of_contents(doc_id: '090063618004ca88')
|
81
|
+
expect(response).to include('<?xml version="1.0"?>')
|
82
|
+
expect(response).to include('<content>')
|
83
|
+
expect(response).to include('<content>000001.tif</content>')
|
84
|
+
expect(response).to_not include('<getDocumentTableOfContentsResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "get_document_content_page method" do
|
89
|
+
it 'returns an appropriate XML document for the get_document_content_page operation' do
|
90
|
+
response = webservice.get_document_content_page(doc_id: '090063618004ca88', page_id: '000001.tif')
|
91
|
+
expect(response).to include('<?xml version="1.0"?>')
|
92
|
+
expect(response).to include('+GP0kv9dhgiY7Rb5h2q4RN6Jj9NpDCJjuMImO0l0TfLe7QRO2yFceTvvTu6C6qTH')
|
93
|
+
expect(response).to_not include('<getDocumentContentPageResponse xmlns="http://www.wipo.org/wsdl/ps">')
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
@@ -0,0 +1,298 @@
|
|
1
|
+
passes:
|
2
|
+
-
|
3
|
+
doc_id: '090063618004ca88'
|
4
|
+
signature: '<content>000001.tif</content>'
|
5
|
+
-
|
6
|
+
doc_id: '090063618004ca89'
|
7
|
+
signature: '<content>000001.tif</content>'
|
8
|
+
-
|
9
|
+
doc_id: '090063618004ca7c'
|
10
|
+
signature: '<content>000001.tif</content>'
|
11
|
+
-
|
12
|
+
doc_id: '090063618004ca7d'
|
13
|
+
signature: '<content>000001.tif</content>'
|
14
|
+
-
|
15
|
+
doc_id: '090063618004ca8b'
|
16
|
+
signature: '<content>000001.tif</content>'
|
17
|
+
-
|
18
|
+
doc_id: '090063618004ca8d'
|
19
|
+
signature: '<content>000001.tif</content>'
|
20
|
+
-
|
21
|
+
doc_id: '0900636180050716'
|
22
|
+
signature: '<content>000001.tif</content>'
|
23
|
+
-
|
24
|
+
doc_id: '090063618004ca8f'
|
25
|
+
signature: '<content>000001.tif</content>'
|
26
|
+
-
|
27
|
+
doc_id: '090063618004ca90'
|
28
|
+
signature: '<content>000001.tif</content>'
|
29
|
+
-
|
30
|
+
doc_id: '090063618006d63c'
|
31
|
+
signature: '<content>000001.tif</content>'
|
32
|
+
-
|
33
|
+
doc_id: '090063618006d508'
|
34
|
+
signature: '<content>000001.tif</content>'
|
35
|
+
-
|
36
|
+
doc_id: '090063618006d509'
|
37
|
+
signature: '<content>000001.tif</content>'
|
38
|
+
-
|
39
|
+
doc_id: '090063618006d50a'
|
40
|
+
signature: '<content>000001.tif</content>'
|
41
|
+
-
|
42
|
+
doc_id: '0900636180078779'
|
43
|
+
signature: '<content>000001.tif</content>'
|
44
|
+
-
|
45
|
+
doc_id: '0900636180078611'
|
46
|
+
signature: '<content>000001.tif</content>'
|
47
|
+
-
|
48
|
+
doc_id: '0900636180082aed'
|
49
|
+
signature: '<content>000001.tif</content>'
|
50
|
+
-
|
51
|
+
doc_id: '090063618007f732'
|
52
|
+
signature: '<content>000001.tif</content>'
|
53
|
+
-
|
54
|
+
doc_id: '0900636180082aee'
|
55
|
+
signature: '<content>000001.tif</content>'
|
56
|
+
-
|
57
|
+
doc_id: '0900636180082c31'
|
58
|
+
signature: '<content>000001.tif</content>'
|
59
|
+
-
|
60
|
+
doc_id: '09006361800827c0'
|
61
|
+
signature: '<content>000001.tif</content>'
|
62
|
+
-
|
63
|
+
doc_id: '0900636180082aef'
|
64
|
+
signature: '<content>000001.tif</content>'
|
65
|
+
-
|
66
|
+
doc_id: '0900636180083c5e'
|
67
|
+
signature: '<content>000001.tif</content>'
|
68
|
+
-
|
69
|
+
doc_id: '0900636180083c8a'
|
70
|
+
signature: '<content>000001.tif</content>'
|
71
|
+
-
|
72
|
+
doc_id: '0900636180083c8b'
|
73
|
+
signature: '<content>000001.tif</content>'
|
74
|
+
-
|
75
|
+
doc_id: '0900636180083ca1'
|
76
|
+
signature: '<content>000001.tif</content>'
|
77
|
+
-
|
78
|
+
doc_id: '0900636180083ca2'
|
79
|
+
signature: '<content>000001.tif</content>'
|
80
|
+
-
|
81
|
+
doc_id: '0900636180083ca3'
|
82
|
+
signature: '<content>000001.tif</content>'
|
83
|
+
-
|
84
|
+
doc_id: '0900636180083caa'
|
85
|
+
signature: '<content>000001.tif</content>'
|
86
|
+
-
|
87
|
+
doc_id: '0900636180083cab'
|
88
|
+
signature: '<content>000001.tif</content>'
|
89
|
+
-
|
90
|
+
doc_id: '0900636180083cbd'
|
91
|
+
signature: '<content>000001.tif</content>'
|
92
|
+
-
|
93
|
+
doc_id: '0900636180083cbe'
|
94
|
+
signature: '<content>000001.tif</content>'
|
95
|
+
-
|
96
|
+
doc_id: '0900636180083cd9'
|
97
|
+
signature: '<content>000001.tif</content>'
|
98
|
+
-
|
99
|
+
doc_id: '0900636180083cdf'
|
100
|
+
signature: '<content>000001.tif</content>'
|
101
|
+
-
|
102
|
+
doc_id: '0900636180083d50'
|
103
|
+
signature: '<content>000001.tif</content>'
|
104
|
+
-
|
105
|
+
doc_id: '0900636180083dac'
|
106
|
+
signature: '<content>000001.tif</content>'
|
107
|
+
-
|
108
|
+
doc_id: '0900636180083dad'
|
109
|
+
signature: '<content>000001.tif</content>'
|
110
|
+
-
|
111
|
+
doc_id: '0900636180083de9'
|
112
|
+
signature: '<content>000001.tif</content>'
|
113
|
+
-
|
114
|
+
doc_id: '0900636180083df8'
|
115
|
+
signature: '<content>000001.tif</content>'
|
116
|
+
-
|
117
|
+
doc_id: '0900636180083e14'
|
118
|
+
signature: '<content>000001.tif</content>'
|
119
|
+
-
|
120
|
+
doc_id: '0900636180083e15'
|
121
|
+
signature: '<content>000001.tif</content>'
|
122
|
+
-
|
123
|
+
doc_id: '0900636180083e4f'
|
124
|
+
signature: '<content>000001.tif</content>'
|
125
|
+
-
|
126
|
+
doc_id: '0900636180083e50'
|
127
|
+
signature: '<content>000001.tif</content>'
|
128
|
+
-
|
129
|
+
doc_id: '0900636180083e51'
|
130
|
+
signature: '<content>000001.tif</content>'
|
131
|
+
-
|
132
|
+
doc_id: '0900636180083ee5'
|
133
|
+
signature: '<content>000001.tif</content>'
|
134
|
+
-
|
135
|
+
doc_id: '0900636180083f14'
|
136
|
+
signature: '<content>000001.tif</content>'
|
137
|
+
-
|
138
|
+
doc_id: '0900636180083f15'
|
139
|
+
signature: '<content>000001.tif</content>'
|
140
|
+
-
|
141
|
+
doc_id: '0900636180083fe8'
|
142
|
+
signature: '<content>000001.tif</content>'
|
143
|
+
-
|
144
|
+
doc_id: '0900636180083fe9'
|
145
|
+
signature: '<content>000001.tif</content>'
|
146
|
+
-
|
147
|
+
doc_id: '09006361800840e0'
|
148
|
+
signature: '<content>000001.tif</content>'
|
149
|
+
-
|
150
|
+
doc_id: '09006361800840e1'
|
151
|
+
signature: '<content>000001.tif</content>'
|
152
|
+
-
|
153
|
+
doc_id: '0900636180084428'
|
154
|
+
signature: '<content>000001.tif</content>'
|
155
|
+
-
|
156
|
+
doc_id: '0900636180084429'
|
157
|
+
signature: '<content>000001.tif</content>'
|
158
|
+
-
|
159
|
+
doc_id: '0900636180084490'
|
160
|
+
signature: '<content>000001.tif</content>'
|
161
|
+
-
|
162
|
+
doc_id: '0900636180084491'
|
163
|
+
signature: '<content>000001.tif</content>'
|
164
|
+
-
|
165
|
+
doc_id: '0900636180084492'
|
166
|
+
signature: '<content>000001.tif</content>'
|
167
|
+
-
|
168
|
+
doc_id: '09006361800844f4'
|
169
|
+
signature: '<content>000001.tif</content>'
|
170
|
+
-
|
171
|
+
doc_id: '0900636180084577'
|
172
|
+
signature: '<content>000001.tif</content>'
|
173
|
+
-
|
174
|
+
doc_id: '0900636180084578'
|
175
|
+
signature: '<content>000001.tif</content>'
|
176
|
+
-
|
177
|
+
doc_id: '09006361800845a1'
|
178
|
+
signature: '<content>000001.tif</content>'
|
179
|
+
-
|
180
|
+
doc_id: '09006361800845a2'
|
181
|
+
signature: '<content>000001.tif</content>'
|
182
|
+
-
|
183
|
+
doc_id: '09006361800845b2'
|
184
|
+
signature: '<content>000001.tif</content>'
|
185
|
+
-
|
186
|
+
doc_id: '09006361800845b3'
|
187
|
+
signature: '<content>000001.tif</content>'
|
188
|
+
-
|
189
|
+
doc_id: '09006361800845cb'
|
190
|
+
signature: '<content>000001.tif</content>'
|
191
|
+
-
|
192
|
+
doc_id: '09006361800845cc'
|
193
|
+
signature: '<content>000001.tif</content>'
|
194
|
+
-
|
195
|
+
doc_id: '09006361800845f5'
|
196
|
+
signature: '<content>000001.tif</content>'
|
197
|
+
-
|
198
|
+
doc_id: '09006361800845f6'
|
199
|
+
signature: '<content>000001.tif</content>'
|
200
|
+
-
|
201
|
+
doc_id: '09006361800845f7'
|
202
|
+
signature: '<content>000001.tif</content>'
|
203
|
+
-
|
204
|
+
doc_id: '09006361800854a7'
|
205
|
+
signature: '<content>000001.tif</content>'
|
206
|
+
-
|
207
|
+
doc_id: '09006361800854f4'
|
208
|
+
signature: '<content>000001.tif</content>'
|
209
|
+
-
|
210
|
+
doc_id: '09006361800854f5'
|
211
|
+
signature: '<content>000001.tif</content>'
|
212
|
+
-
|
213
|
+
doc_id: '090063618008a415'
|
214
|
+
signature: '<content>000001.tif</content>'
|
215
|
+
-
|
216
|
+
doc_id: '090063618008a416'
|
217
|
+
signature: '<content>000001.tif</content>'
|
218
|
+
-
|
219
|
+
doc_id: '090063618008a417'
|
220
|
+
signature: '<content>000001.tif</content>'
|
221
|
+
-
|
222
|
+
doc_id: '090063618008a419'
|
223
|
+
signature: '<content>000001.tif</content>'
|
224
|
+
-
|
225
|
+
doc_id: '090063618008a41a'
|
226
|
+
signature: '<content>000001.tif</content>'
|
227
|
+
-
|
228
|
+
doc_id: '090063618008a41b'
|
229
|
+
signature: '<content>000001.tif</content>'
|
230
|
+
-
|
231
|
+
doc_id: '0900636180084451'
|
232
|
+
signature: '<content>000001.tif</content>'
|
233
|
+
-
|
234
|
+
doc_id: '0900636180084461'
|
235
|
+
signature: '<content>000001.tif</content>'
|
236
|
+
-
|
237
|
+
doc_id: '0900636180084462'
|
238
|
+
signature: '<content>000001.tif</content>'
|
239
|
+
-
|
240
|
+
doc_id: '0900636180084479'
|
241
|
+
signature: '<content>000001.tif</content>'
|
242
|
+
-
|
243
|
+
doc_id: '090063618008447a'
|
244
|
+
signature: '<content>000001.tif</content>'
|
245
|
+
-
|
246
|
+
doc_id: '09006361800844cc'
|
247
|
+
signature: '<content>000001.tif</content>'
|
248
|
+
-
|
249
|
+
doc_id: '09006361800844cd'
|
250
|
+
signature: '<content>000001.tif</content>'
|
251
|
+
-
|
252
|
+
doc_id: '09006361800844ce'
|
253
|
+
signature: '<content>000001.tif</content>'
|
254
|
+
-
|
255
|
+
doc_id: '0900636180084585'
|
256
|
+
signature: '<content>000001.tif</content>'
|
257
|
+
-
|
258
|
+
doc_id: '09006361800845d4'
|
259
|
+
signature: '<content>000001.tif</content>'
|
260
|
+
-
|
261
|
+
doc_id: '09006361800845d5'
|
262
|
+
signature: '<content>000001.tif</content>'
|
263
|
+
-
|
264
|
+
doc_id: '09006361800854a9'
|
265
|
+
signature: '<content>000001.tif</content>'
|
266
|
+
-
|
267
|
+
doc_id: '09006361800854d8'
|
268
|
+
signature: '<content>000001.tif</content>'
|
269
|
+
-
|
270
|
+
doc_id: '0900636180085517'
|
271
|
+
signature: '<content>000001.tif</content>'
|
272
|
+
-
|
273
|
+
doc_id: '0900636180085518'
|
274
|
+
signature: '<content>000001.tif</content>'
|
275
|
+
-
|
276
|
+
doc_id: '090063618008552a'
|
277
|
+
signature: '<content>000001.tif</content>'
|
278
|
+
-
|
279
|
+
doc_id: '090063618008552b'
|
280
|
+
signature: '<content>000001.tif</content>'
|
281
|
+
-
|
282
|
+
doc_id: '090063618008a3bb'
|
283
|
+
signature: '<content>000001.tif</content>'
|
284
|
+
-
|
285
|
+
doc_id: '090063618008a3bc'
|
286
|
+
signature: '<content>000001.tif</content>'
|
287
|
+
-
|
288
|
+
doc_id: '090063618008a3bd'
|
289
|
+
signature: '<content>000001.tif</content>'
|
290
|
+
-
|
291
|
+
doc_id: '0900636180083c2b'
|
292
|
+
signature: '<content>000001.tif</content>'
|
293
|
+
-
|
294
|
+
doc_id: '0900636180083c2c'
|
295
|
+
signature: '<content>000001.tif</content>'
|
296
|
+
-
|
297
|
+
doc_id: '0900636180083c3c'
|
298
|
+
signature: '<content>000001.tif</content>'
|