1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # -*- coding: utf-8 -*-
- from __future__ import unicode_literals
- from unittest import skipUnless
- from django.contrib.gis.geos import HAS_GEOS
- from django.contrib.gis.maps.google.overlays import GEvent, GOverlayBase
- from django.test import TestCase
- from django.test.utils import modify_settings, override_settings
- from django.utils.encoding import force_text
- GOOGLE_MAPS_API_KEY = 'XXXX'
- @skipUnless(HAS_GEOS, 'Geos is required.')
- @modify_settings(
- INSTALLED_APPS={'append': 'django.contrib.gis'},
- )
- class GoogleMapsTest(TestCase):
- @override_settings(GOOGLE_MAPS_API_KEY=GOOGLE_MAPS_API_KEY)
- def test_google_map_scripts(self):
- """
- Testing GoogleMap.scripts() output. See #20773.
- """
- from django.contrib.gis.maps.google.gmap import GoogleMap
- google_map = GoogleMap()
- scripts = google_map.scripts
- self.assertIn(GOOGLE_MAPS_API_KEY, scripts)
- self.assertIn("new GMap2", scripts)
- @override_settings(GOOGLE_MAPS_API_KEY=GOOGLE_MAPS_API_KEY)
- def test_unicode_in_google_maps(self):
- """
- Test that GoogleMap doesn't crash with non-ASCII content.
- """
- from django.contrib.gis.geos import Point
- from django.contrib.gis.maps.google.gmap import GoogleMap, GMarker
- center = Point(6.146805, 46.227574)
- marker = GMarker(center,
- title='En français !')
- google_map = GoogleMap(center=center, zoom=18, markers=[marker])
- self.assertIn("En français", google_map.scripts)
- def test_gevent_html_safe(self):
- event = GEvent('click', 'function() {location.href = "http://www.google.com"}')
- self.assertTrue(hasattr(GEvent, '__html__'))
- self.assertEqual(force_text(event), event.__html__())
- def test_goverlay_html_safe(self):
- overlay = GOverlayBase()
- overlay.js_params = '"foo", "bar"'
- self.assertTrue(hasattr(GOverlayBase, '__html__'))
- self.assertEqual(force_text(overlay), overlay.__html__())
|