/* Copyright (c) 2010, Diaspora Inc. This file is * licensed under the Affero General Public License version 3 or later. See * the COPYRIGHT file. */ describe("Diaspora", function() { describe("widgets", function() { describe("i18n", function() { describe("loadLocale", function() { it("sets the class's locale variable", function() { Diaspora.widgets.i18n.loadLocale({sup: "hi"}); expect(Diaspora.widgets.i18n.locale).toEqual({sup: "hi"}); }); }); describe("t", function() { it("returns the specified translation", function() { Diaspora.widgets.i18n.loadLocale({yo: "sup"}, "en"); var translation = Diaspora.widgets.i18n.t("yo"); expect(translation).toEqual("sup"); }); it("will go through a infinitely deep object", function() { Diaspora.widgets.i18n.loadLocale({ yo: { hi: { sup: { test: "test" } } }, more: { another: "i hope this spec is green" } }); expect(Diaspora.widgets.i18n.t("yo.hi.sup.test")).toEqual("test"); expect(Diaspora.widgets.i18n.t("more.another")).toEqual("i hope this spec is green"); }); it("can render a mustache template", function() { Diaspora.widgets.i18n.loadLocale({yo: "{{yo}}"}, "en"); expect(Diaspora.widgets.i18n.t("yo", {yo: "it works!"})).toEqual("it works!"); }); it("returns an empty string if the translation is not found", function() { expect(Diaspora.widgets.i18n.t("thisstringdoesnotexist")).toEqual(""); }); }); }); }); });