Index: tests/regressiontests/django_views/locale/en/LC_MESSAGES/djangojs.mo
===================================================================
No se puede mostrar: el archivo está marcado como binario.
svn:mime-type = application/octet-stream

Cambios de propiedades en tests/regressiontests/django_views/locale/en/LC_MESSAGES/djangojs.mo
___________________________________________________________________
Nombre: svn:mime-type
   + application/octet-stream

Index: tests/regressiontests/django_views/locale/en/LC_MESSAGES/djangojs.po
===================================================================
--- tests/regressiontests/django_views/locale/en/LC_MESSAGES/djangojs.po	(revisión: 0)
+++ tests/regressiontests/django_views/locale/en/LC_MESSAGES/djangojs.po	(revisión: 0)
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-15 16:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "this is to be translated"
+msgstr "this is to be translated in english"
Index: tests/regressiontests/django_views/locale/es/LC_MESSAGES/djangojs.mo
===================================================================
No se puede mostrar: el archivo está marcado como binario.
svn:mime-type = application/octet-stream

Cambios de propiedades en tests/regressiontests/django_views/locale/es/LC_MESSAGES/djangojs.mo
___________________________________________________________________
Nombre: svn:mime-type
   + application/octet-stream

Index: tests/regressiontests/django_views/locale/es/LC_MESSAGES/djangojs.po
===================================================================
--- tests/regressiontests/django_views/locale/es/LC_MESSAGES/djangojs.po	(revisión: 0)
+++ tests/regressiontests/django_views/locale/es/LC_MESSAGES/djangojs.po	(revisión: 0)
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-15 16:45+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: media/js/translate.js:1
+msgid "this is to be translated"
+msgstr "esto tiene que ser traducido"
Index: tests/regressiontests/django_views/locale/fr/LC_MESSAGES/djangojs.mo
===================================================================
No se puede mostrar: el archivo está marcado como binario.
svn:mime-type = application/octet-stream

Cambios de propiedades en tests/regressiontests/django_views/locale/fr/LC_MESSAGES/djangojs.mo
___________________________________________________________________
Nombre: svn:mime-type
   + application/octet-stream

Index: tests/regressiontests/django_views/locale/fr/LC_MESSAGES/djangojs.po
===================================================================
--- tests/regressiontests/django_views/locale/fr/LC_MESSAGES/djangojs.po	(revisión: 0)
+++ tests/regressiontests/django_views/locale/fr/LC_MESSAGES/djangojs.po	(revisión: 0)
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2007-09-15 19:15+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+msgid "this is to be translated"
+msgstr "il faut le traduire"
Index: tests/regressiontests/django_views/media/file.txt
===================================================================
--- tests/regressiontests/django_views/media/file.txt	(revisión: 0)
+++ tests/regressiontests/django_views/media/file.txt	(revisión: 0)
@@ -0,0 +1 @@
+An example media file.
\ Sin fin-de-línea al final del archivo
Index: tests/regressiontests/django_views/views.py
===================================================================
--- tests/regressiontests/django_views/views.py	(revisión: 0)
+++ tests/regressiontests/django_views/views.py	(revisión: 0)
@@ -0,0 +1,13 @@
+from django.http import HttpResponse
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+
+
+def index_page(request):
+    """ Dummy index page """
+    return HttpResponse('<html><body>Dummy page</body></html>')
+
+
+def jsi18n_test(request):
+    """ View for testing javascript message files """
+    return render_to_response('js_i18n.html', {})
\ Sin fin-de-línea al final del archivo
Index: tests/regressiontests/django_views/__init__.py
===================================================================
Index: tests/regressiontests/django_views/fixtures/testdata.json
===================================================================
--- tests/regressiontests/django_views/fixtures/testdata.json	(revisión: 0)
+++ tests/regressiontests/django_views/fixtures/testdata.json	(revisión: 0)
@@ -0,0 +1,25 @@
+[
+    {
+        "pk": 1, 
+        "model": "django_views.article", 
+        "fields": {
+            "author": 1, 
+            "title": "Un articulo"
+        }
+    }, 
+    {
+        "pk": 1, 
+        "model": "django_views.author", 
+        "fields": {
+            "name": "Amparo"
+        }
+    }, 
+    {
+        "pk": 1, 
+        "model": "sites.site", 
+        "fields": {
+            "domain": "testserver", 
+            "name": "testserver"
+        }
+    }
+]
Index: tests/regressiontests/django_views/models.py
===================================================================
--- tests/regressiontests/django_views/models.py	(revisión: 0)
+++ tests/regressiontests/django_views/models.py	(revisión: 0)
@@ -0,0 +1,112 @@
+"""
+Regression tests for Django Views
+"""
+
+from os import path
+import gettext
+
+from django.conf import settings
+from django.http import Http404
+from django.test import Client, TestCase
+from django.contrib.sessions.models import Session
+from django.contrib.contenttypes.models import ContentType
+from django.utils.translation import activate
+
+from django.db import models
+from django.conf import settings
+
+
+##########################
+# Models for testing
+
+class Author(models.Model):
+    name = models.CharField(max_length=100)
+
+    def __unicode__(self):
+        return self.name
+
+    def get_absolute_url(self):
+        return '/django_views/authors/%s/' % self.id
+
+
+class Article(models.Model):
+    title = models.CharField(max_length=100)
+    author = models.ForeignKey(Author)
+
+    def __unicode__(self):
+        return self.title
+
+
+##########################
+# Tests suites
+
+class DefaultsTests(TestCase):
+    fixtures = ['testdata.json']
+    """ Test django views in django/views/defaults.py """
+
+    def test_shorcut(self):
+        """ Test shorcut view """
+        content_types = ContentType.objects.all()
+        for ct in content_types:
+            model = ct.model_class()
+            for obj in model.objects.all():
+                short_url = '/django_views/r/%s/%s/' % (ct.id, obj.pk)
+                response = self.client.get(short_url)
+                if hasattr(obj, 'get_absolute_url'):
+                    self.assertRedirects(response, 'http://testserver%s' % obj.get_absolute_url(), 
+                                         target_status_code=404)
+                else:
+                    self.assertEquals(response.status_code, 404)
+
+    def test_page_not_found(self):
+        """ Test page_not_found view """
+        non_existing_urls = ['/django_views/non_existing_url/', # this is in urls.py
+                             '/django_views/other_non_existing_url/'] # this NOT in urls.py
+        for url in non_existing_urls:
+            response = self.client.get(url)
+            self.assertEquals(response.status_code, 404)
+
+    def test_server_error(self):
+        """ Test server_error view """
+        response = self.client.get('/django_views/server_error/')
+        self.assertEquals(response.status_code, 500)
+
+
+class I18NTests(TestCase):
+    """ Tests django views in django/views/i18n.py """
+
+    def test_setlang(self):
+        """ Test set_language view """
+        for lang_code, lang_name in settings.LANGUAGES:
+            response = self.change_language(lang_code, '/django_views/')
+            self.assertRedirects(response, 'http://testserver/django_views/')
+            self.assertEquals(self.client.session['django_language'], lang_code)
+
+    def test_jsi18n(self):
+        """ Test javascript_catalog view """
+        for lang_code in ['es', 'fr', 'en']:
+            activate(lang_code)
+            locale_dir = path.join(path.dirname(__file__), 'locale')
+            catalog = gettext.translation('djangojs', locale_dir, [lang_code])
+            trans_txt = catalog.ugettext('this is to be translated')
+            response = self.client.get('/django_views/jsi18n/')
+            # in response content must to be a line like that:
+            # catalog['this is to be translated'] = 'same_that_trans_txt'
+            self.assertContains(response, trans_txt, 1)
+
+    def change_language(self, language, next):
+        post_data = dict(language=language, next=next)
+        return self.client.post('/django_views/i18n/setlang/', data=post_data)
+
+
+class StaticTests(TestCase):
+    """ Tests django views in django/views/static.py """
+
+    def test_serve(self):
+        """ Test serve view """
+        from urls import media_dir
+        media_files = ['file.txt',]
+        for filename in media_files:
+            response = self.client.get('/django_views/site_media/%s' % filename)
+            file = open(path.join(media_dir, filename))
+            self.assertEquals(file.read(), response.content)
Index: tests/regressiontests/django_views/urls.py
===================================================================
--- tests/regressiontests/django_views/urls.py	(revisión: 0)
+++ tests/regressiontests/django_views/urls.py	(revisión: 0)
@@ -0,0 +1,22 @@
+from os import path
+
+from django.conf.urls.defaults import *
+import views
+
+media_dir = path.join(path.dirname(path.abspath(__file__)), 'media')
+
+js_info_dict = {
+    'domain': 'djangojs',
+    'packages': ('regressiontests.django_views',),
+}
+
+urlpatterns = patterns('',
+    (r'^$', views.index_page),
+    (r'^r/(\d+)/(.*)/$', 'django.views.defaults.shortcut'),
+    (r'^non_existing_url/', 'django.views.defaults.page_not_found'),
+    (r'^server_error/', 'django.views.defaults.server_error'),
+    (r'^i18n/', include('django.conf.urls.i18n')),
+    (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict),
+    (r'^jsi18n_test/$', views.jsi18n_test),
+    (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': media_dir}),
+)
Index: tests/urls.py
===================================================================
--- tests/urls.py	(revisión: 6360)
+++ tests/urls.py	(copia de trabajo)
@@ -11,4 +11,7 @@
 
     # test urlconf for {% url %} template tag
     (r'^url_tag/', include('regressiontests.templates.urls')),
+    
+    # django views tests urls
+    (r'^django_views/', include('regressiontests.django_views.urls')),
 )
Index: tests/templates/js_i18n.html
===================================================================
--- tests/templates/js_i18n.html	(revisión: 0)
+++ tests/templates/js_i18n.html	(revisión: 0)
@@ -0,0 +1,6 @@
+{% extends "base.html" %}
+{% load i18n %}
+{% block title %}{% trans "Js Tests" %}{% endblock %}
+{% block content %}
+
+{% endblock %}
