From bf6a8a1a8e991c33dd770a0e83b83ee34c6b5e20 Mon Sep 17 00:00:00 2001 From: Dries <dries@buytaert.net> Date: Wed, 25 Apr 2012 17:02:24 -0700 Subject: [PATCH] - Patch #1468582 by Schnitzel, lewisnyman, dcmouyard, alanburke, tstoeckler, edward_or, janusman: Add mobile friendly meta tags to the html.tpl.php. --- core/includes/theme.inc | 3 ++ core/modules/system/html.tpl.php | 8 ++++ core/modules/system/system.test | 41 +++++++++++++++++++ .../system_module_test.info | 6 +++ .../system_module_test.module | 10 +++++ 5 files changed, 68 insertions(+) create mode 100644 core/modules/system/tests/modules/system_module_test/system_module_test.info create mode 100644 core/modules/system/tests/modules/system_module_test/system_module_test.module diff --git a/core/includes/theme.inc b/core/includes/theme.inc index 5e0a40a6c5f1..99e872ed8544 100644 --- a/core/includes/theme.inc +++ b/core/includes/theme.inc @@ -2546,6 +2546,9 @@ function template_preprocess_html(&$variables) { $variables['head_title_array'] = $head_title; $variables['head_title'] = implode(' | ', $head_title); + // Display the html.tpl.php’s default mobile metatags for responsive design. + $variables['default_mobile_metatags'] = TRUE; + // Populate the page template suggestions. if ($suggestions = theme_get_suggestions(arg(), 'html')) { $variables['theme_hook_suggestions'] = $suggestions; diff --git a/core/modules/system/html.tpl.php b/core/modules/system/html.tpl.php index 960eefbdb63b..59a52b9bcebf 100644 --- a/core/modules/system/html.tpl.php +++ b/core/modules/system/html.tpl.php @@ -22,6 +22,8 @@ * - slogan: The slogan of the site, if any, and if there is no title. * - $head: Markup for the HEAD section (including meta tags, keyword tags, and * so on). + * - $default_mobile_metatags: TRUE if default mobile metatags for responsive + * design should be displayed. * - $styles: Style tags necessary to import all CSS files for the page. * - $scripts: Script tags necessary to load the JavaScript files and settings * for the page. @@ -43,6 +45,12 @@ <html<?php print $html_attributes; ?>> <head> <?php print $head; ?> + <?php if ($default_mobile_metatags): ?> + <meta name="MobileOptimized" content="width" /> + <meta name="HandheldFriendly" content="true" /> + <meta name="viewport" content="width=device-width" /> + <meta http-equiv="cleartype" content="on" /> + <?php endif; ?> <title><?php print $head_title; ?></title> <?php print $styles; ?> <?php print $scripts; ?> diff --git a/core/modules/system/system.test b/core/modules/system/system.test index 78f6a23cdd99..16348cc8203c 100644 --- a/core/modules/system/system.test +++ b/core/modules/system/system.test @@ -946,6 +946,47 @@ class AdminMetaTagTestCase extends DrupalWebTestCase { } } +class DefaultMobileMetaTagsTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Default mobile meta tags', + 'description' => 'Confirm that the default mobile meta tags appear as expected.', + 'group' => 'System' + ); + } + + function setUp() { + parent::setUp(); + $this->default_metatags = array( + 'MobileOptimized' => '<meta name="MobileOptimized" content="width" />', + 'HandheldFriendly' => '<meta name="HandheldFriendly" content="true" />', + 'viewport' => '<meta name="viewport" content="width=device-width" />', + 'cleartype' => '<meta http-equiv="cleartype" content="on" />' + ); + } + + /** + * Verifies that the default mobile meta tags are added. + */ + public function testDefaultMetaTagsExist() { + $this->drupalGet(''); + foreach ($this->default_metatags as $name => $metatag) { + $this->assertRaw($metatag, 'Default Mobile meta tag "' . $name . '" displayed properly.', t('System')); + } + } + + /** + * Verifies that the default mobile meta tags can be removed. + */ + public function testRemovingDefaultMetaTags() { + module_enable(array('system_module_test')); + $this->drupalGet(''); + foreach ($this->default_metatags as $name => $metatag) { + $this->assertNoRaw($metatag, 'Default Mobile meta tag "' . $name . '" removed properly.', t('System')); + } + } +} + /** * Tests custom access denied functionality. */ diff --git a/core/modules/system/tests/modules/system_module_test/system_module_test.info b/core/modules/system/tests/modules/system_module_test/system_module_test.info new file mode 100644 index 000000000000..5184a33a7e20 --- /dev/null +++ b/core/modules/system/tests/modules/system_module_test/system_module_test.info @@ -0,0 +1,6 @@ +name = "System test" +description = "Provides hook implementations for testing System module functionality." +package = Testing +version = VERSION +core = 8.x +hidden = TRUE diff --git a/core/modules/system/tests/modules/system_module_test/system_module_test.module b/core/modules/system/tests/modules/system_module_test/system_module_test.module new file mode 100644 index 000000000000..ec90b15618f9 --- /dev/null +++ b/core/modules/system/tests/modules/system_module_test/system_module_test.module @@ -0,0 +1,10 @@ +<?php + +/** + * @file + * Provides System module hook implementations for testing purposes. + */ + +function system_module_test_preprocess_html(&$variables) { + $variables['default_mobile_metatags'] = FALSE; +} -- GitLab