From 4dc693bd321e459534c29baf476ac6feff90d6d8 Mon Sep 17 00:00:00 2001 From: Niklaus Giger Date: Tue, 18 Apr 2017 14:07:23 +0200 Subject: [PATCH] Add meta tags for appled_app_id --- src/custom/lookandfeelbase.rb | 2 ++ src/view/publictemplate.rb | 13 ++++++++++-- test/test_view/publictemplate.rb | 34 +++++++++++++++++++++++++------- 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/custom/lookandfeelbase.rb b/src/custom/lookandfeelbase.rb index 56b42d8a4..071a8351a 100644 --- a/src/custom/lookandfeelbase.rb +++ b/src/custom/lookandfeelbase.rb @@ -175,6 +175,7 @@ def google_analytics_token :anthroposophy => 'Anthroposophisches Arzneimittel', :article_24 => 'Art. 24 ATSG', :article_24_url => 'http://www.admin.ch/ch/d/sr/830_1/a24.html', + :apple_itunes_app => '687642725', :assign_deprived_sequence => 'Zuweisen', :assigned_substances => 'Folgende Wirkstoffe sind der Sequenz bereits zugeordnet:', :assign_fachinfo_equal => 'identisch', @@ -1871,6 +1872,7 @@ def google_analytics_token :analysis_search_explain => 'Cherchez dans la liste des analyses prises en charge par les
assureurs-maladie dans le cadre de l\'assurance-maladie obligatoire.', :and => ' et ', :anonymous => 'Position anonyme', + :apple_itunes_app => '712891884', :anthroposophy => 'Médicament anthroposophique', :assigned_substances => 'Les principes actifs suivants sont déjà assignés à la séquence:', :assign_patinfo => 'Validez les informations liées au patient', diff --git a/src/view/publictemplate.rb b/src/view/publictemplate.rb index b98612be2..a59f2e572 100644 --- a/src/view/publictemplate.rb +++ b/src/view/publictemplate.rb @@ -1,7 +1,7 @@ #!/usr/bin/env ruby # encoding: utf-8 # View::PublicTemplate -- oddb -- 15.01.2013 -- yasaka@ywesee.com -# View::PublicTemplate -- oddb -- 24.10.2002 -- hwyss@ywesee.com +# View::PublicTemplate -- oddb -- 24.10.2002 -- hwyss@ywesee.com require 'htmlgrid/template' require 'view/navigationfoot' require 'sbsm/time' @@ -56,6 +56,15 @@ class PublicTemplate < HtmlGrid::Template ] def init @additional_javascripts = [] + app_id_tag = { + "name" => "apple-itunes-app", + "content" => 'app-id=' + @lookandfeel.lookup(:apple_itunes_app), + } + if META_TAGS.size == 1 + META_TAGS.unshift app_id_tag + else + META_TAGS[0] = app_id_tag + end super end def content(model, session) @@ -126,7 +135,7 @@ def javascripts(context) scripts end def title(context) - context.title { + context.title { [ @lookandfeel.lookup(:html_title), @lookandfeel.lookup(@session.state.zone), diff --git a/test/test_view/publictemplate.rb b/test/test_view/publictemplate.rb index a5c8e08e1..e035f3b59 100755 --- a/test/test_view/publictemplate.rb +++ b/test/test_view/publictemplate.rb @@ -10,6 +10,7 @@ require 'flexmock/minitest' require 'view/publictemplate' require 'htmlgrid/form' +require 'sbsm/cgi' module ODDB class Session @@ -35,28 +36,28 @@ module View class TestPublicTemplate 'lookup', + @lnf = flexmock('lookandfeel', :enabled? => nil, :attributes => {}, :resource => 'resource', :resource_global => 'resource_global', - :zones => [@zones], :disabled? => nil, :zone_navigation => [ 'zone_navigation' ], :direct_event => 'direct_event', :_event_url => '_event_url', :navigation => ['navigation'], ) + @lnf.should_receive(:lookup).and_return('lookup').by_default + @lnf.should_receive(:zones).and_return([@zones]).by_default user = flexmock('user', :valid? => nil) sponsor = flexmock('sponsor', :valid? => nil) - @session = flexmock('session', - :lookandfeel => @lnf, + @session = flexmock('session', :flavor => 'gcc', :user => user, :sponsor => sponsor, :get_cookie_input => nil, ) + @session.should_receive(:lookandfeel).and_return(@lnf).by_default @model = flexmock('model') @template = ODDB::View::StubPublicTemplate.new(@model, @session) @@ -66,7 +67,7 @@ def test_css_link assert_equal('link', @template.css_link(context)) end def test_css_link__lookandfeel_enabled - flexmock(@lnf, + flexmock(@lnf, :enabled? => true, :resource_external => 'resource_external' ) @@ -74,7 +75,7 @@ def test_css_link__lookandfeel_enabled assert_equal('link', @template.css_link(context)) end def test_dynamic_html_headers - flexmock(@lnf, + flexmock(@lnf, :enabled? => true, :resource_global => 'resource_global' ) @@ -130,6 +131,25 @@ def test_topfoot__oekk_structure end assert_kind_of(ODDB::View::TopFoot, @template.topfoot(@model, @session)) end + def test_meta_apple_app_id + @lnf.should_receive(:lookup).and_return{|arg| arg.to_s} + @lnf.should_receive(:zones).and_return([]) + @session.should_receive(:event).and_return(nil) + @session.should_receive(:lookandfeel).and_return(@lnf) + context = flexmock('context', :title => 'title') + context = flexmock('context') do |c| + c.should_receive(:script).and_return('script') + c.should_receive(:style).and_return('style') + end + state = flexmock('state') + state.should_receive(:zone).and_return('zone') + state.should_receive(:direct_event).and_return(nil) + @session.should_receive(:state).and_return(state) + @cgi = CGI.initialize_without_offline_prompt('html4') + @template.init + html = @template.to_html(@cgi) + assert(/META name="apple-itunes-app" content="app-id.*/.match(html)) + end end end # View