brand2csv 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +14 -0
- data/.rspec +1 -0
- data/.travis.yml +26 -0
- data/Gemfile +4 -0
- data/History.txt +121 -0
- data/LICENCE.txt +515 -0
- data/Manifest.txt +54 -0
- data/README.md +27 -0
- data/Rakefile +18 -0
- data/bin/brand2csv +100 -0
- data/brand2csv.gemspec +44 -0
- data/lib/brand2csv.rb +594 -0
- data/lib/brand2csv/version.rb +3 -0
- data/logs/aspen_08_08_1986.html +598 -0
- data/logs/post.rohdaten.httpfox +1 -0
- data/logs/post.rohdaten.mechanize +1 -0
- data/logs/protocol_swissreg.log +86 -0
- data/logs/result_01.10.2005.jsp +598 -0
- data/logs/sr1.jsp +449 -0
- data/logs/sr3.jsp +598 -0
- data/logs/start.jsp +350 -0
- data/logs/start2.jsp +434 -0
- data/protocol.2013.05.12.textile +56 -0
- data/protocol.2013.05.15.textile +49 -0
- data/protocol.2013.05.21.textile +84 -0
- data/spec/brand2csv_spec.rb +62 -0
- data/spec/csv_spec.rb +57 -0
- data/spec/data/aspectra/detail_00001_P-480296.html +531 -0
- data/spec/data/aspectra/detail_00002_P-482236.html +531 -0
- data/spec/data/aspectra/detail_00003_641074.html +539 -0
- data/spec/data/aspectra/first_results.html +600 -0
- data/spec/data/einfache_suche.html +434 -0
- data/spec/data/erweiterte_suche.html +446 -0
- data/spec/data/main.html +350 -0
- data/spec/data/result_short.html +606 -0
- data/spec/data/resultate_1.html +446 -0
- data/spec/data/resultate_2.html +446 -0
- data/spec/data/urner_wildheu/detail_00001_57862.2013.html +516 -0
- data/spec/data/urner_wildheu/first_results.html +598 -0
- data/spec/data/vereinfachte_1.html +847 -0
- data/spec/data/vereinfachte_detail_33.html +516 -0
- data/spec/detail_spec.rb +28 -0
- data/spec/short_spec.rb +55 -0
- data/spec/simple_search.rb +43 -0
- data/spec/spec_helper.rb +34 -0
- data/spec/support/core_ext/kernel.rb +26 -0
- data/spec/support/server_mock_helper.rb +143 -0
- data/spec/swissreg_spec.rb +45 -0
- data/spec/trademark_numbers_spec.rb +21 -0
- data/spec/utilities_spec.rb +83 -0
- data/spike.rb +491 -0
- data/spike_mechanize_swissreg.rb +312 -0
- data/spike_watir.rb +58 -0
- data/swissreg.rb +75 -0
- metadata +86 -7
data/spec/detail_spec.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#encoding : utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
include Brand2csv
|
5
|
+
|
6
|
+
describe 'Detail' do
|
7
|
+
before :each do
|
8
|
+
dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'data'))
|
9
|
+
session = Swissreg.new("01.01.1990", 'Branding')
|
10
|
+
filename = "#{dataDir}/vereinfachte_detail_33.html"
|
11
|
+
expect(File.exists?(filename)).to be_truthy
|
12
|
+
doc = Nokogiri::Slop(File.open(filename))
|
13
|
+
@marke = Swissreg::getMarkenInfoFromDetail(doc)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "collected trademark information must be correct" do
|
17
|
+
expect(@marke).not_to be_nil
|
18
|
+
expect(@marke.zeile_1).to eq("Peter Löcker Bauart")
|
19
|
+
expect(@marke.zeile_2).to eq("Trollstrasse 20")
|
20
|
+
expect(@marke.zeile_3).to be_nil
|
21
|
+
expect(@marke.plz).to eq('8400')
|
22
|
+
expect(@marke.ort).to eq('Winterthur')
|
23
|
+
expect(@marke.markennummer).to eq('00135/2013')
|
24
|
+
expect(@marke.inhaber).to eq("Peter Löcker Bauart, Trollstrasse 20, 8400 Winterthur")
|
25
|
+
expect(@marke.name).to eq('https://www.swissreg.ch/srclient/images/loadImage?Action=LoadImg&ItemType=tm&ImageType=print&ImageHash=F431E13A9D8F363BD06604796634142A18A5BA7C.jpeg')
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
data/spec/short_spec.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Brand2csv
|
4
|
+
|
5
|
+
describe 'Short (e.g. corvatsch*)' do
|
6
|
+
TrademarkSearch = 'TRADEMARK REGISTER SEARCH TIMES: QUERY=[10] SELECT=[70] SERVER=[80] DELEGATE=[93] (HITS=[9])'
|
7
|
+
before :each do
|
8
|
+
dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'data'))
|
9
|
+
session = Swissreg.new("01.01.1990", 'Branding')
|
10
|
+
filename = "#{dataDir}/result_short.html"
|
11
|
+
expect(File.exists?(filename)).to be_truthy
|
12
|
+
doc = Nokogiri::Slop(File.open(filename))
|
13
|
+
@einfach = Swissreg::Vereinfachte.new(doc)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "short search must return info about trademark search" do
|
17
|
+
expect(Swissreg::inputValue(@einfach.inputData, 'id_swissreg:mainContent:vivian')).to eq(TrademarkSearch)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "short search must return hit information" do
|
21
|
+
expect(@einfach.firstHit).to eq(1)
|
22
|
+
expect(@einfach.nrHits).to eq(9)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "short search must return details" do
|
26
|
+
expect(@einfach.links2details).not_to be_nil
|
27
|
+
expect(@einfach.links2details.size).to eq(9)
|
28
|
+
expect(@einfach.links2details.index(901614)).not_to be_nil
|
29
|
+
end
|
30
|
+
|
31
|
+
it "short search must return information about (sub-)pages" do
|
32
|
+
expect(@einfach.pageNr).to eq(1)
|
33
|
+
expect(@einfach.nrSubPages).to eq(1)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "short search getPostDataForSubpage" do
|
37
|
+
expect(@einfach.pageNr).to eq(1)
|
38
|
+
data = @einfach.getPostDataForSubpage(2)
|
39
|
+
expect(data).not_to be_nil
|
40
|
+
expect(Swissreg::inputValue(data, 'tmMainId')).to eq("")
|
41
|
+
expect(Swissreg::inputValue(data, 'id_swissreg:mainContent:scroll_1')).to eq("idx2")
|
42
|
+
expect(Swissreg::inputValue(data, 'id_swissreg:_idcl')).to eq('id_swissreg:mainContent:scroll_1idx2')
|
43
|
+
end
|
44
|
+
|
45
|
+
it "short search getPostDataForDetail" do
|
46
|
+
expect(@einfach.pageNr).to eq(1)
|
47
|
+
position = 3
|
48
|
+
id = 937439
|
49
|
+
data = @einfach.getPostDataForDetail(position, id)
|
50
|
+
expect(data).not_to be_nil
|
51
|
+
expect(Swissreg::inputValue(data, 'tmMainId')).to eq("#{id}")
|
52
|
+
expect(Swissreg::inputValue(data, 'id_swissreg:mainContent:scroll_1')).to eq('')
|
53
|
+
expect(Swissreg::inputValue(data, 'id_swissreg:_idcl')).to eq("id_swissreg:mainContent:data:#{position}:tm_no_detail:id_detail")
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Brand2csv
|
4
|
+
|
5
|
+
describe 'simple search with > 500 results' do
|
6
|
+
TrademarkSearch = 'TRADEMARK REGISTER SEARCH TIMES: QUERY=[530] SELECT=[1456] SERVER=[1991] DELEGATE=[2088] (HITS=[6349])'
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'data'))
|
10
|
+
session = Swissreg.new("01.01.1990", 'Branding')
|
11
|
+
filename = "#{dataDir}/vereinfachte_1.html"
|
12
|
+
expect(File.exists?(filename)).to be_truthy
|
13
|
+
doc = Nokogiri::Slop(File.open(filename))
|
14
|
+
@einfach = Swissreg::Vereinfachte.new(doc)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "simple search must contain inputData with vivian" do
|
18
|
+
data = @einfach.inputData
|
19
|
+
expect(data.class).to eq(Array)
|
20
|
+
expect(data.size).to eq(9)
|
21
|
+
end
|
22
|
+
|
23
|
+
it "simple search must return info about trademark search" do
|
24
|
+
expect(Swissreg::inputValue(@einfach.inputData, 'id_swissreg:mainContent:vivian')).to eq(TrademarkSearch)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "simple search must return hit information" do
|
28
|
+
expect(@einfach.firstHit).to eq(1)
|
29
|
+
expect(@einfach.nrHits).to eq(6349)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "simple search must return details" do
|
33
|
+
expect(@einfach.links2details).not_to be_nil
|
34
|
+
expect(@einfach.links2details.size).to eq(250)
|
35
|
+
expect(@einfach.links2details.index(940377)).not_to be_nil
|
36
|
+
end
|
37
|
+
|
38
|
+
it "simple search must return information about (sub-)pages" do
|
39
|
+
expect(@einfach.pageNr).to eq(1)
|
40
|
+
expect(@einfach.nrSubPages).to eq(26)
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
3
|
+
$:.unshift File.dirname(__FILE__)
|
4
|
+
|
5
|
+
require 'bundler/setup'
|
6
|
+
Bundler.require
|
7
|
+
|
8
|
+
require 'rspec'
|
9
|
+
require "webmock/rspec"
|
10
|
+
|
11
|
+
Dir[File.join(File.dirname(__FILE__), "support/**/*.rb")].each { |f| require f }
|
12
|
+
|
13
|
+
require 'brand2csv'
|
14
|
+
begin
|
15
|
+
capture(:stdout) { load File.expand_path("../../bin/brand2csv", __FILE__) }
|
16
|
+
rescue LoadError
|
17
|
+
end
|
18
|
+
|
19
|
+
RSpec.configure do |config|
|
20
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
21
|
+
config.run_all_when_everything_filtered = true
|
22
|
+
config.filter_run :focus
|
23
|
+
config.filter_run_excluding :slow
|
24
|
+
#config.exclusion_filter = {:slow => true}
|
25
|
+
|
26
|
+
# Run specs in random order to surface order dependencies. If you find an
|
27
|
+
# order dependency and want to debug it, you can fix the order by providing
|
28
|
+
# the seed, which is printed after each run.
|
29
|
+
# --seed 1234
|
30
|
+
config.order = 'random'
|
31
|
+
|
32
|
+
# Helper
|
33
|
+
config.include(ServerMockHelper)
|
34
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'stringio'
|
4
|
+
require 'ostruct'
|
5
|
+
|
6
|
+
module Kernel
|
7
|
+
# for stdout/stderr
|
8
|
+
def capture(stream)
|
9
|
+
begin
|
10
|
+
stream = stream.to_s
|
11
|
+
eval "$#{stream} = StringIO.new"
|
12
|
+
yield
|
13
|
+
result = eval("$#{stream}").string
|
14
|
+
ensure
|
15
|
+
eval "$#{stream} = #{stream.upcase}"
|
16
|
+
end
|
17
|
+
result
|
18
|
+
end
|
19
|
+
|
20
|
+
alias :original_exit :exit
|
21
|
+
# for load executable file
|
22
|
+
def exit(status=false)
|
23
|
+
(status == 1) ? raise(LoadError) : original_exit
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,143 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
module ServerMockHelper
|
5
|
+
|
6
|
+
def setup_swissreg_ch_server(trademark, timespan, result_folder, trademark_ids)
|
7
|
+
# main
|
8
|
+
stub_response = File.read(File.expand_path("../../data/main.html", __FILE__))
|
9
|
+
stub_request(:get, "https://www.swissreg.ch/srclient/faces/jsp/start.jsp").
|
10
|
+
with(
|
11
|
+
:headers => {
|
12
|
+
"Accept" => "*/*",
|
13
|
+
"Host" => "www.swissreg.ch",
|
14
|
+
}).
|
15
|
+
to_return(
|
16
|
+
:status => 200,
|
17
|
+
:headers => {"Content-Type" => 'text/html; charset=utf-8'},
|
18
|
+
:body => stub_response)
|
19
|
+
# erweiterte
|
20
|
+
stub_response = File.read(File.expand_path("../../data/erweiterte_suche.html", __FILE__))
|
21
|
+
stub_request(:post, "https://www.swissreg.ch/srclient/faces/jsp/start.jsp").
|
22
|
+
with(
|
23
|
+
:headers => {
|
24
|
+
"Accept" => "*/*",
|
25
|
+
"Host" => "www.swissreg.ch",
|
26
|
+
},
|
27
|
+
:body => {
|
28
|
+
"autoScroll" => "",
|
29
|
+
"id_swissreg:_idcl" => "id_swissreg_sub_nav_ipiNavigation_item0",
|
30
|
+
"id_swissreg:_link_hidden_" => "",
|
31
|
+
"id_swissreg_SUBMIT" => "1",
|
32
|
+
"javax.faces.ViewState" =>"rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAExcHQADi9qc3Avc3RhcnQuanNw"
|
33
|
+
}).
|
34
|
+
to_return(
|
35
|
+
:status => 200,
|
36
|
+
:headers => {"Content-Type" => 'text/html; charset=utf-8'},
|
37
|
+
:body => stub_response)
|
38
|
+
# result page 1
|
39
|
+
stub_response = File.read(File.expand_path("../../data/#{result_folder}/first_results.html", __FILE__))
|
40
|
+
stub_request(:post, "https://www.swissreg.ch/srclient/faces/jsp/trademark/sr3.jsp").
|
41
|
+
with(
|
42
|
+
:headers => {
|
43
|
+
"Accept" => "*/*",
|
44
|
+
"Host" => "www.swissreg.ch",
|
45
|
+
},
|
46
|
+
:body => {
|
47
|
+
"autoScroll" => "0,829",
|
48
|
+
"id_swissreg:_idcl" => "",
|
49
|
+
"id_swissreg:_link_hidden_" => "",
|
50
|
+
"id_swissreg:mainContent:id_cbxCountry" => "_ALL",
|
51
|
+
"id_swissreg:mainContent:id_cbxFormatChoice" => "1",
|
52
|
+
"id_swissreg:mainContent:id_cbxHitsPerPage" => "250",
|
53
|
+
"id_swissreg:mainContent:id_cbxTMColorClaim" => "_ALL",
|
54
|
+
"id_swissreg:mainContent:id_cbxTMForm" => "_ALL",
|
55
|
+
"id_swissreg:mainContent:id_cbxTMTypeGrp" => "_ALL",
|
56
|
+
"id_swissreg:mainContent:id_ckbTMChoice" => "tm_lbl_app_date",
|
57
|
+
"id_swissreg:mainContent:id_ckbTMPubReason" => "8",
|
58
|
+
"id_swissreg:mainContent:id_ckbTMState" => "3",
|
59
|
+
"id_swissreg:mainContent:id_txf_agent" => "",
|
60
|
+
"id_swissreg:mainContent:id_txf_appDate" => "#{timespan}",
|
61
|
+
"id_swissreg:mainContent:id_txf_app_no" => "",
|
62
|
+
"id_swissreg:mainContent:id_txf_applicant" => "",
|
63
|
+
"id_swissreg:mainContent:id_txf_expiryDate" => "",
|
64
|
+
"id_swissreg:mainContent:id_txf_licensee" => "",
|
65
|
+
"id_swissreg:mainContent:id_txf_nizza_class" => "",
|
66
|
+
"id_swissreg:mainContent:id_txf_pub_date" => "",
|
67
|
+
"id_swissreg:mainContent:id_txf_tm_no" => "",
|
68
|
+
"id_swissreg:mainContent:id_txf_tm_text" => "#{trademark}",
|
69
|
+
"id_swissreg:mainContent:sub_fieldset:id_submit" => "suchen",
|
70
|
+
"id_swissreg_SUBMIT" => "1",
|
71
|
+
"javax.faces.ViewState" => "rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAExcHQADi9qc3Avc3RhcnQuanNw"
|
72
|
+
}).
|
73
|
+
to_return(
|
74
|
+
:status => 200,
|
75
|
+
:headers => {"Content-Type" => 'text/html; charset=utf-8'},
|
76
|
+
:body => stub_response)
|
77
|
+
# result page 2
|
78
|
+
stub_response = File.read(File.expand_path("../../data/#{result_folder}/first_results.html", __FILE__))
|
79
|
+
stub_request(:post, "https://www.swissreg.ch/srclient/faces/jsp/trademark/sr3.jsp").
|
80
|
+
with(
|
81
|
+
:headers => {
|
82
|
+
"Accept" => "*/*",
|
83
|
+
"Host" => "www.swissreg.ch",
|
84
|
+
},
|
85
|
+
:body => {
|
86
|
+
"autoScroll" => "",
|
87
|
+
"id_swissreg:_idcl" => "id_swissreg_sub_nav_ipiNavigation_item0_item3",
|
88
|
+
"id_swissreg:_link_hidden_" => "",
|
89
|
+
"id_swissreg:mainContent:id_cbxCountry" => "_ALL",
|
90
|
+
"id_swissreg:mainContent:id_cbxFormatChoice" => "1",
|
91
|
+
"id_swissreg:mainContent:id_cbxHitsPerPage" => "25",
|
92
|
+
"id_swissreg:mainContent:id_cbxTMColorClaim" => "_ALL",
|
93
|
+
"id_swissreg:mainContent:id_cbxTMForm" => "_ALL",
|
94
|
+
"id_swissreg:mainContent:id_cbxTMTypeGrp" => "_ALL",
|
95
|
+
"id_swissreg:mainContent:id_ckbTMChoice" => "tm_lbl_applicant",
|
96
|
+
"id_swissreg:mainContent:id_ckbTMPubReason" => "8",
|
97
|
+
"id_swissreg:mainContent:id_ckbTMState" => "3",
|
98
|
+
"id_swissreg:mainContent:id_txf_agent" => "",
|
99
|
+
"id_swissreg:mainContent:id_txf_appDate" => "",
|
100
|
+
"id_swissreg:mainContent:id_txf_app_no" => "",
|
101
|
+
"id_swissreg:mainContent:id_txf_applicant" => "",
|
102
|
+
"id_swissreg:mainContent:id_txf_expiryDate" => "",
|
103
|
+
"id_swissreg:mainContent:id_txf_licensee" => "",
|
104
|
+
"id_swissreg:mainContent:id_txf_nizza_class" => "",
|
105
|
+
"id_swissreg:mainContent:id_txf_pub_date" => "",
|
106
|
+
"id_swissreg:mainContent:id_txf_tm_no" => "",
|
107
|
+
"id_swissreg:mainContent:id_txf_tm_text" => "",
|
108
|
+
"id_swissreg_SUBMIT" => "1",
|
109
|
+
"javax.faces.ViewState" => "rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAEzcHQAFi9qc3AvdHJhZGVtYXJrL3NyMy5qc3A="
|
110
|
+
}).
|
111
|
+
to_return(
|
112
|
+
:status => 200,
|
113
|
+
:headers => {"Content-Type" => 'text/html; charset=utf-8'},
|
114
|
+
:body => stub_response)
|
115
|
+
|
116
|
+
counter = 0
|
117
|
+
trademark_ids.each{
|
118
|
+
|trademark_id|
|
119
|
+
counter += 1
|
120
|
+
filename = File.expand_path("../../data/#{result_folder}/detail_#{sprintf('%05i',counter)}_#{trademark_id.sub('/','.')}.html", __FILE__)
|
121
|
+
stub_response = File.read(filename)
|
122
|
+
stub_request(:get, "https://www.swissreg.ch/srclient/faces/jsp/trademark/sr300.jsp?language=de§ion=tm&id=#{trademark_id}").
|
123
|
+
with(
|
124
|
+
:headers => {
|
125
|
+
"Accept" => "*/*",
|
126
|
+
"Host" => "www.swissreg.ch",
|
127
|
+
}).
|
128
|
+
to_return(
|
129
|
+
:status => 200,
|
130
|
+
:headers => {"Content-Type" => 'text/html; charset=utf-8'},
|
131
|
+
:body => stub_response)
|
132
|
+
|
133
|
+
}
|
134
|
+
stub_request(:post, "https://www.swissreg.ch/srclient/faces/jsp/trademark/sr30.jsp").
|
135
|
+
with(:body => {"autoScroll"=>"", "id_swissreg:_idcl"=>"", "id_swissreg:_link_hidden_"=>"", "id_swissreg:mainContent:id_sub_options_result:id_ckbTMChoice"=>"tm_lbl_app_date", "id_swissreg:mainContent:id_sub_options_result:sub_fieldset:id_cbxHitsPerPage"=>"250", "id_swissreg:mainContent:scroll_1"=>"",
|
136
|
+
"id_swissreg:mainContent:vivian"=>
|
137
|
+
"TRADEMARK REGISTER SEARCH TIMES: QUERY=[14] SELECT=[20] SERVER=[37] DELEGATE=[46]", "id_swissreg_SUBMIT"=>"1", "javax.faces.ViewState"=>"rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAE0cHQAFy9qc3AvdHJhZGVtYXJrL3NyMzAuanNw", "tmMainId"=>""}
|
138
|
+
).
|
139
|
+
to_return(:status => 200, :body => "", :headers => {})
|
140
|
+
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#encoding : utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe 'Get some simple example from swissreg' do
|
5
|
+
|
6
|
+
HasVertreterPos = 4
|
7
|
+
pending ('mocking swissreg no longer works')
|
8
|
+
if false
|
9
|
+
it "should get correct results from swissreg" do
|
10
|
+
marke = 'aspectra*'
|
11
|
+
timespan = '01.01.2012-31.12.2012'
|
12
|
+
setup_swissreg_ch_server(marke, timespan, 'aspectra', ["P-480296", "P-482236", "641074"])
|
13
|
+
results = nil
|
14
|
+
capture(:stdout) { results = Brand2csv::run(timespan, marke) }
|
15
|
+
expect(results).not_to be_nil
|
16
|
+
expect(results.size).to eq(3)
|
17
|
+
expect(results[0].zeile_1).to eq('Aspectra AG')
|
18
|
+
expect(results[0].plz).to eq('8004')
|
19
|
+
expect(results[0].ort).to eq('Zürich')
|
20
|
+
csv = "#{timespan}.csv"
|
21
|
+
csv_lines = IO.readlines(csv)
|
22
|
+
expect(csv_lines[1].split(';')[HasVertreterPos]).to eq("Ja")
|
23
|
+
expect(csv_lines[2].split(';')[HasVertreterPos]).to eq("Ja")
|
24
|
+
expect(csv_lines[3].split(';')[HasVertreterPos]).to eq("Nein")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should get correct results from swissreg when owner has two postal addresses" do
|
28
|
+
marke = 'Urner Wildheu'
|
29
|
+
timespan = '01.05.2013-30.06.2013'
|
30
|
+
setup_swissreg_ch_server(marke, timespan, 'urner_wildheu', ["57862/2013"])
|
31
|
+
results = nil
|
32
|
+
capture(:stdout) { results = Brand2csv::run(timespan, marke) }
|
33
|
+
expect(results).not_to be_nil
|
34
|
+
expect(results.size).to eq(1)
|
35
|
+
expect(results[0].zeile_1).to eq('Philipp Arnold')
|
36
|
+
expect(results[0].zeile_2).to eq('Seestrasse 37a')
|
37
|
+
expect(results[0].plz).to eq('6454')
|
38
|
+
expect(results[0].ort).to eq('Flüelen')
|
39
|
+
csv = "#{timespan}.csv"
|
40
|
+
csv_lines = IO.readlines(csv)
|
41
|
+
expect(csv_lines[1].split(';')[2]).to eq('Philipp Arnold, Seestrasse 37a, 6454 Flüelen')
|
42
|
+
expect(csv_lines[1].split(';')[HasVertreterPos]).to eq("Ja")
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Brand2csv
|
4
|
+
|
5
|
+
describe 'trademark number search' do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
dataDir = File.expand_path(File.join(File.dirname(__FILE__), 'data'))
|
9
|
+
filename = "#{dataDir}/result_short.html"
|
10
|
+
expect(File.exists?(filename)).to be_truthy
|
11
|
+
@doc = Nokogiri::Slop(File.open(filename))
|
12
|
+
end
|
13
|
+
|
14
|
+
it "trademark number search must contain 9 numbers" do
|
15
|
+
numbers = Swissreg::getTrademarkNumbers(@doc)
|
16
|
+
expect(numbers).not_to be_nil
|
17
|
+
expect(numbers.size).to eq(9)
|
18
|
+
expect(numbers.index('00127/2011')).not_to be_nil
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
#encoding : utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
include Brand2csv
|
5
|
+
|
6
|
+
describe 'Tests for utility procedure' do
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
@data = [
|
10
|
+
["autoScroll", ""],
|
11
|
+
["id_swissreg:mainContent:id_show_simple_view_hitlist", "Vereinfachte Trefferliste anzeigen"],
|
12
|
+
["id_swissreg_SUBMIT", "1"],
|
13
|
+
["id_swissreg:_idcl", "id_swissreg_sub_nav_ipiNavigation_item0"],
|
14
|
+
["id_swissreg:_link_hidden_", ""],
|
15
|
+
["javax.faces.ViewState", 'xzy' ],
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
it "inputValue should return nil for not existing key " do
|
20
|
+
expect(Swissreg::inputValue(@data, 'xxx')).to be_nil
|
21
|
+
end
|
22
|
+
|
23
|
+
it "inputValue should return correct value for existing key " do
|
24
|
+
expect(Swissreg::inputValue(@data, 'autoScroll')).to eq('')
|
25
|
+
expect(Swissreg::inputValue(@data, 'id_swissreg:mainContent:id_show_simple_view_hitlist')).to eq("Vereinfachte Trefferliste anzeigen")
|
26
|
+
end
|
27
|
+
|
28
|
+
it "HitsPerPage must be 250" do
|
29
|
+
expect(Swissreg::HitsPerPage).to eq(250)
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'Tests parsing adress line' do
|
35
|
+
|
36
|
+
it "must handle correctly Via San Salvatore, 2" do
|
37
|
+
full_address_line = 'Ideal Hobby Sagl, Via San Salvatore, 2, 6902 Paradiso'
|
38
|
+
number = 'for_debugging'
|
39
|
+
zeile_1, zeile_2, zeile_3, zeile_4, zeile_5, plz, ort = Swissreg::parseAddress(number, full_address_line)
|
40
|
+
expect(zeile_1).to eq('Ideal Hobby Sagl')
|
41
|
+
expect(zeile_2).to eq('Via San Salvatore, 2')
|
42
|
+
expect(zeile_3).to be_nil
|
43
|
+
expect(plz).to eq('6902')
|
44
|
+
expect(ort).to eq('Paradiso')
|
45
|
+
end
|
46
|
+
|
47
|
+
it "must handle correctly 90, route de Frontenex" do
|
48
|
+
full_address_line = 'Olivier Karim Wasem, 90, route de Frontenex, 1208 Genève'
|
49
|
+
number = 'for_debugging'
|
50
|
+
zeile_1, zeile_2, zeile_3, zeile_4, zeile_5, plz, ort = Swissreg::parseAddress(number, full_address_line)
|
51
|
+
expect(zeile_1).to eq('Olivier Karim Wasem')
|
52
|
+
expect(zeile_2).to eq('90, route de Frontenex')
|
53
|
+
expect(zeile_3).to be_nil
|
54
|
+
expect(plz).to eq('1208')
|
55
|
+
expect(ort).to eq('Genève')
|
56
|
+
end
|
57
|
+
|
58
|
+
it "must handle ampersands correctly" do
|
59
|
+
full_address_line = 'Schweiz. Serum- & Impfinstitut, und Institut zur Erforschung der, Infektionskrankheiten, Rehhagstrasse 79, 3018 Bern'
|
60
|
+
number = 'for_debugging'
|
61
|
+
zeile_1, zeile_2, zeile_3, zeile_4, zeile_5, plz, ort = Swissreg::parseAddress(number, full_address_line)
|
62
|
+
expect(zeile_1).to eq('Schweiz. Serum- & Impfinstitut')
|
63
|
+
expect(zeile_2).to eq('und Institut zur Erforschung der')
|
64
|
+
expect(zeile_3).to eq('Infektionskrankheiten')
|
65
|
+
expect(zeile_4).to eq('Rehhagstrasse 79')
|
66
|
+
expect(zeile_5).to be_nil
|
67
|
+
expect(plz).to eq('3018')
|
68
|
+
expect(ort).to eq('Bern')
|
69
|
+
end
|
70
|
+
|
71
|
+
it "must handle several postal addresses correctly" do
|
72
|
+
full_address_line = 'Philipp Arnold, Seestrasse 37a, 6454 Flüelen, , Peter Tresoldi, c/o Xitix GmbH, Rathausplatz 4, 6460 Altdorf'
|
73
|
+
number = 'for_debugging'
|
74
|
+
zeile_1, zeile_2, zeile_3, zeile_4, zeile_5, plz, ort = Swissreg::parseAddress(number, full_address_line)
|
75
|
+
expect(zeile_1).to eq('Philipp Arnold')
|
76
|
+
expect(zeile_2).to eq('Seestrasse 37a')
|
77
|
+
expect(zeile_3).to be_nil
|
78
|
+
expect(zeile_4).to be_nil
|
79
|
+
expect(zeile_5).to be_nil
|
80
|
+
expect(plz).to eq('6454')
|
81
|
+
expect(ort).to eq('Flüelen')
|
82
|
+
end
|
83
|
+
end
|