Commit 7bd5c3f5ccaaed216e3b5a7e2a66cb1776803a83
Committed by
Daniela Feitosa
1 parent
6da1fe92
Exists in
master
and in
29 other branches
Fix use of google static map api v3
Also move view to template
Showing
4 changed files
with
31 additions
and
19 deletions
Show diff stats
app/models/location_block.rb
1 | class LocationBlock < Block | 1 | class LocationBlock < Block |
2 | 2 | ||
3 | - settings_items :zoom, :type => :integer , :default => 4 | ||
4 | - settings_items :map_type, :type => :string , :default => 'roadmap' | 3 | + settings_items :zoom, :type => :integer, :default => 4 |
4 | + settings_items :map_type, :type => :string, :default => 'roadmap' | ||
5 | 5 | ||
6 | def self.description | 6 | def self.description |
7 | _('Location map') | 7 | _('Location map') |
@@ -12,18 +12,10 @@ class LocationBlock < Block | @@ -12,18 +12,10 @@ class LocationBlock < Block | ||
12 | end | 12 | end |
13 | 13 | ||
14 | def content(args={}) | 14 | def content(args={}) |
15 | + block = self | ||
15 | profile = self.owner | 16 | profile = self.owner |
16 | - title = self.title | ||
17 | - if profile.lat | ||
18 | - block_title(title) + | ||
19 | - content_tag('div', | ||
20 | - '<img src="http://maps.google.com/maps/api/staticmap?center=' + profile.lat.to_s() + | ||
21 | - ',' + profile.lng.to_s() + '&zoom=' + zoom.to_s() + | ||
22 | - '&size=190x250&maptype=' + map_type + '&markers=' + profile.lat.to_s() + ',' + | ||
23 | - profile.lng.to_s() + ',green' + '&sensor=false"/>', | ||
24 | - :class => 'the-localization-map' ) | ||
25 | - else | ||
26 | - content_tag('i', _('This profile has no geographical position registered.')) | 17 | + lambda do |
18 | + render :file => 'blocks/location', :locals => {:block => block, :profile => profile} | ||
27 | end | 19 | end |
28 | end | 20 | end |
29 | 21 |
@@ -0,0 +1,9 @@ | @@ -0,0 +1,9 @@ | ||
1 | +<% if profile.lat %> | ||
2 | + <%= block_title block.title %> | ||
3 | + <div class='the-localization-map'> | ||
4 | + <img src="http://maps.google.com/maps/api/staticmap?center=<%=profile.lat%>,<%=profile.lng%>&zoom=<%=block.zoom%>&size=190x250&maptype=<%=block.map_type%>&markers=<%=profile.lat%>,<%=profile.lng%>&sensor=false"/> | ||
5 | + </div> | ||
6 | +</div> | ||
7 | +<% else %> | ||
8 | + <i><%= _('This profile has no geographical position registered.') %></i> | ||
9 | +<% end %> |
test/test_helper.rb
@@ -79,7 +79,7 @@ class ActiveSupport::TestCase | @@ -79,7 +79,7 @@ class ActiveSupport::TestCase | ||
79 | 79 | ||
80 | destname = 'test_should_' + name.gsub(/[^a-zA-z0-9]+/, '_') | 80 | destname = 'test_should_' + name.gsub(/[^a-zA-z0-9]+/, '_') |
81 | if @shoulds.include?(destname) | 81 | if @shoulds.include?(destname) |
82 | - raise "there is already a test named \"#{destname}\"" | 82 | + raise "there is already a test named \"#{destname}\"" |
83 | end | 83 | end |
84 | 84 | ||
85 | @shoulds << destname | 85 | @shoulds << destname |
@@ -121,7 +121,7 @@ class ActiveSupport::TestCase | @@ -121,7 +121,7 @@ class ActiveSupport::TestCase | ||
121 | object.valid? | 121 | object.valid? |
122 | assert !object.errors.invalid?(attribute) | 122 | assert !object.errors.invalid?(attribute) |
123 | end | 123 | end |
124 | - | 124 | + |
125 | def assert_subclass(parent, child) | 125 | def assert_subclass(parent, child) |
126 | assert_equal parent, child.superclass, "Class #{child} expected to be a subclass of #{parent}" | 126 | assert_equal parent, child.superclass, "Class #{child} expected to be a subclass of #{parent}" |
127 | end | 127 | end |
@@ -150,7 +150,7 @@ class ActiveSupport::TestCase | @@ -150,7 +150,7 @@ class ActiveSupport::TestCase | ||
150 | get action, params | 150 | get action, params |
151 | end | 151 | end |
152 | doc = Hpricot @response.body | 152 | doc = Hpricot @response.body |
153 | - | 153 | + |
154 | # Test style references: | 154 | # Test style references: |
155 | (doc/'style').each do |s| | 155 | (doc/'style').each do |s| |
156 | s = s.to_s().gsub( /\/\*.*\*\//, '' ). | 156 | s = s.to_s().gsub( /\/\*.*\*\//, '' ). |
@@ -193,6 +193,12 @@ class ActiveSupport::TestCase | @@ -193,6 +193,12 @@ class ActiveSupport::TestCase | ||
193 | assert !tag, "expected no tag #{options.inspect}, but tag found in #{text.inspect}" | 193 | assert !tag, "expected no tag #{options.inspect}, but tag found in #{text.inspect}" |
194 | end | 194 | end |
195 | 195 | ||
196 | + # For models that render views (blocks, articles, ...) | ||
197 | + def render(*args) | ||
198 | + view_paths = @explicit_view_paths || ActionController::Base.view_paths | ||
199 | + ActionView::Base.new(view_paths, {}).render(*args) | ||
200 | + end | ||
201 | + | ||
196 | private | 202 | private |
197 | 203 | ||
198 | def uses_host(name) | 204 | def uses_host(name) |
test/unit/location_block_test.rb
@@ -2,6 +2,9 @@ require File.dirname(__FILE__) + '/../test_helper' | @@ -2,6 +2,9 @@ require File.dirname(__FILE__) + '/../test_helper' | ||
2 | 2 | ||
3 | class LocationBlockTest < ActiveSupport::TestCase | 3 | class LocationBlockTest < ActiveSupport::TestCase |
4 | 4 | ||
5 | + ActionView::Base.send :include, BlockHelper | ||
6 | + include BoxesHelper | ||
7 | + | ||
5 | def setup | 8 | def setup |
6 | @profile = create_user('lele').person | 9 | @profile = create_user('lele').person |
7 | @block = LocationBlock.new | 10 | @block = LocationBlock.new |
@@ -15,7 +18,7 @@ class LocationBlockTest < ActiveSupport::TestCase | @@ -15,7 +18,7 @@ class LocationBlockTest < ActiveSupport::TestCase | ||
15 | end | 18 | end |
16 | 19 | ||
17 | should 'display no localization map without lat' do | 20 | should 'display no localization map without lat' do |
18 | - assert_tag_in_string block.content, :tag => 'i' | 21 | + assert_tag_in_string extract_block_content(block.content), :tag => 'i' |
19 | end | 22 | end |
20 | 23 | ||
21 | should 'be editable' do | 24 | should 'be editable' do |
@@ -28,8 +31,10 @@ class LocationBlockTest < ActiveSupport::TestCase | @@ -28,8 +31,10 @@ class LocationBlockTest < ActiveSupport::TestCase | ||
28 | 31 | ||
29 | should 'use google maps api v3' do | 32 | should 'use google maps api v3' do |
30 | @block.owner.lat = '-12.34'; @block.owner.save! | 33 | @block.owner.lat = '-12.34'; @block.owner.save! |
31 | - assert_match 'http://maps.google.com/maps/api/staticmap', @block.content | ||
32 | - assert_no_match /key=/, @block.content | 34 | + content = extract_block_content(@block.content) |
35 | + | ||
36 | + assert_match 'http://maps.google.com/maps/api/staticmap', content | ||
37 | + assert_no_match /key=/, content | ||
33 | end | 38 | end |
34 | 39 | ||
35 | end | 40 | end |