UNPKG

4.22 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.7.1
2var I18n, assert, makeReq, makeRes, path;
3
4assert = require("assert");
5
6path = require('path');
7
8makeReq = function(config) {
9 if (config == null) {
10 config = {};
11 }
12 return config;
13};
14
15makeRes = function() {
16 return {
17 locals: {}
18 };
19};
20
21I18n = (require('../index.js')).i18n;
22
23describe('I18n', function() {
24 describe('guessLanguage()', function() {
25 it('should get first language', function(done) {
26 var req, res;
27 I18n.configure({
28 defaultLanguage: null,
29 languages: ['zh-cn'],
30 detects: [
31 function(req, next) {
32 return next(null);
33 }, function(req, next) {
34 return next(null, 'zh-cn');
35 }, function(req, next) {
36 return next(null, 'en-us');
37 }
38 ]
39 });
40 res = makeRes();
41 req = makeReq();
42 return I18n.guessLanguage(req, res, function(err, language) {
43 assert.equal('zh-cn', language);
44 return done();
45 });
46 });
47 return it('should get default languages', function(done) {
48 var req, res;
49 I18n.configure({
50 defaultLanguage: 'zh-tw',
51 languages: [],
52 detects: []
53 });
54 res = makeRes();
55 req = makeReq();
56 return I18n.guessLanguage(req, res, function(err, language) {
57 assert.equal('zh-tw', language);
58 return done();
59 });
60 });
61 });
62 describe('init()', function() {
63 it('create default i18n', function(done) {
64 var req, res;
65 I18n.configure({
66 defaultLanguage: 'zh-tw',
67 languages: [],
68 detects: []
69 });
70 res = makeRes();
71 req = makeReq();
72 return I18n.init(req, res, function() {
73 assert.equal(false, res.locals.$i18n === null);
74 assert.equal('hello', res.locals.$i18n.t("hello"));
75 return done();
76 });
77 });
78 it('should translate language correctly', function(done) {
79 var req, res;
80 I18n.configure({
81 languages: ['zh-cn'],
82 defaultLanguage: null,
83 folders: [path.join(__dirname, 'i18n')],
84 detects: [
85 function(req, next) {
86 return next(null, 'zh-cn');
87 }
88 ]
89 });
90 res = makeRes();
91 res.local;
92 req = makeReq();
93 return I18n.init(req, res, function() {
94 assert.equal(false, res.locals.$i18n === null);
95 assert.equal('你好', res.locals.$i18n.t("hello"));
96 assert.equal('你好 zz', res.locals.$i18n.t("hello user", {
97 name: 'zz'
98 }));
99 return done();
100 });
101 });
102 return it('return default language if there is not language accepted', function(done) {
103 var req, res;
104 I18n.configure({
105 languages: ['zh-cn', 'en-us'],
106 defaultLanguage: ['zh-cn'],
107 folders: [path.join(__dirname, 'i18n')],
108 detects: [
109 function(req, next) {
110 return next(null, 'jan');
111 }
112 ]
113 });
114 res = makeRes();
115 req = makeReq();
116 return I18n.init(req, res, function() {
117 assert.equal('你好', res.locals.$i18n.t("hello"));
118 return done();
119 });
120 });
121 });
122 return describe('detects', function() {
123 it('cookie detect', function(done) {
124 var cookiedetect, req;
125 cookiedetect = I18n.detects.cookie("lang");
126 req = makeReq({
127 cookies: {
128 lang: 'zh-cn'
129 }
130 });
131 return cookiedetect(req, function(err, language) {
132 assert.equal('zh-cn', language);
133 return done();
134 });
135 });
136 it('accept detect', function(done) {
137 var detect, req;
138 detect = I18n.detects.accept();
139 req = makeReq({
140 acceptedLanguages: ['zh-cn']
141 });
142 return detect(req, function(err, language) {
143 assert.equal('zh-cn', language);
144 return done();
145 });
146 });
147 return it('param detect', function(done) {
148 var detect, req;
149 detect = I18n.detects.params('lang');
150 req = makeReq({
151 params: {
152 lang: 'zh-cn'
153 }
154 });
155 return detect(req, function(err, language) {
156 assert.equal('zh-cn', language);
157 return done();
158 });
159 });
160 });
161});
162
163//# sourceMappingURL=i18n_test.map