diff --git a/django/contrib/gis/maps/google/gmap.py b/django/contrib/gis/maps/google/gmap.py index b61c95913d..9c9c61cf61 100644 --- a/django/contrib/gis/maps/google/gmap.py +++ b/django/contrib/gis/maps/google/gmap.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.conf import settings from django.template.loader import render_to_string from django.utils.html import format_html diff --git a/django/contrib/gis/maps/google/overlays.py b/django/contrib/gis/maps/google/overlays.py index a2025b852e..e7e563e199 100644 --- a/django/contrib/gis/maps/google/overlays.py +++ b/django/contrib/gis/maps/google/overlays.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.contrib.gis.geos import fromstr, Point, LineString, LinearRing, Polygon from django.utils.functional import total_ordering from django.utils.safestring import mark_safe diff --git a/django/contrib/gis/maps/google/zoom.py b/django/contrib/gis/maps/google/zoom.py index e6e5d9217e..937d5fe33c 100644 --- a/django/contrib/gis/maps/google/zoom.py +++ b/django/contrib/gis/maps/google/zoom.py @@ -1,3 +1,5 @@ +from __future__ import unicode_literals + from django.contrib.gis.geos import GEOSGeometry, LinearRing, Polygon, Point from django.contrib.gis.maps.google.gmap import GoogleMapException from django.utils.six.moves import xrange diff --git a/django/contrib/gis/tests/maps/__init__.py b/django/contrib/gis/tests/maps/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/django/contrib/gis/tests/maps/tests.py b/django/contrib/gis/tests/maps/tests.py new file mode 100644 index 0000000000..d0832fcbb0 --- /dev/null +++ b/django/contrib/gis/tests/maps/tests.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from unittest import skipUnless + +from django.contrib.gis.geos import HAS_GEOS, Point +from django.test import TestCase +from django.test.utils import override_settings + +GOOGLE_MAPS_API_KEY = 'XXXX' + + +@skipUnless(HAS_GEOS, 'Geos is required.') +class GoogleMapsTest(TestCase): + + @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.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)