Exemplo n.º 1
0
        private static void AssertTranslationExists(string culture, IEnumerable <string> ids, string category)
        {
            var options = new LocaleOptions
            {
                Locale = culture
            };
            var service = new GlobalizedLocalizationService(options);
            var notFoundTranslations = new List <string>();

            foreach (var id in ids)
            {
                var localizedString = service.GetString(category, id);
                if (string.IsNullOrEmpty(localizedString))
                {
                    var errormsg = string.Format("Could not find translation of Id '{0}' in {1}", id,
                                                 string.IsNullOrEmpty(culture) ? "IdentityServers internals" : culture);
                    notFoundTranslations.Add(errormsg);
                }
                else
                {
                    string message = string.Format("{0} - {1}:{2} - {3}", culture, category, id, localizedString);
                    Trace.WriteLine(message);
                    Debug.WriteLine(message);
                    Console.WriteLine(message);
                    Assert.NotEqual("", localizedString.Trim());
                }
            }
            if (notFoundTranslations.Any())
            {
                var concated = notFoundTranslations.Aggregate((x, y) => x + ", " + y);
                throw new AssertActualExpectedException("Some translation", "NOTHING!", concated);
            }
        }
Exemplo n.º 2
0
        public static TranslationsComposite GetAllTranslationsForLocale(HttpRequestMessage Request, string id)
        {
            IDictionary <string, object> env = Request.GetOwinEnvironment();
            var options = new LocaleOptions
            {
                LocaleProvider = e => { return(id); }
            };
            var localeService = new GlobalizedLocalizationService(new OwinEnvironmentService(env), options);

            var allTranslationsForLocale = (from eventId in AllEventIds let value = localeService.GetString(Eventscategory, eventId) select new IdTranslation {
                Id = eventId, Value = value
            }).ToList();

            allTranslationsForLocale.AddRange(from messageId in AllMessageIds let value = localeService.GetString(Messagescategory, messageId) select new IdTranslation {
                Id = messageId, Value = value
            });
            allTranslationsForLocale.AddRange(from scopeId in AllScopeIds let value = localeService.GetString(ScopesCategory, scopeId) select new IdTranslation {
                Id = scopeId, Value = value
            });


            var headerValue      = Request.Headers.AcceptLanguage.OrderByDescending(s => s.Quality.GetValueOrDefault(1));
            var localeFromHeader = headerValue.FirstOrDefault();

            return(new TranslationsComposite
            {
                Locale = id,
                HeaderLanguage = localeFromHeader.Value,
                Translations = allTranslationsForLocale,
                IdSrvVersion = VersionHelper.GetIdsrvVersion()
            });
        }
Exemplo n.º 3
0
        public void HasTranslationsForAllPublicIds()
        {
            var availableCultures = GlobalizedLocalizationService.GetAvailableLocales();

            foreach (var availableCulture in availableCultures)
            {
                AssertTranslationExists(availableCulture, TestHelper.GetAllMessageIds(), IdSrvConstants.Messages);
                AssertTranslationExists(availableCulture, TestHelper.GetAllEventIds(), IdSrvConstants.Events);
                AssertTranslationExists(availableCulture, TestHelper.GetAllScopeIds(), IdSrvConstants.Scopes);
            }
        }
Exemplo n.º 4
0
        public void ContainsEnglishLocalesAsWell(string locale)
        {
            var env     = new Dictionary <string, object>();
            var options = new LocaleOptions
            {
                LocaleProvider = e => locale
            };
            var global   = new GlobalizedLocalizationService(new OwinEnvironmentService(env), options);
            var resource = global.GetString(IdSrvConstants.Messages, MessageIds.MissingClientId);

            Assert.Equal("client_id is missing", resource);
        }
Exemplo n.º 5
0
        public void FetchesResourceWhenUsingLocaleProviderFunc()
        {
            var options = new LocaleOptions
            {
                LocaleProvider = env => "nb-NO"
            };
            var envServiceMock = new Fake <OwinEnvironmentService>().FakedObject;

            var service         = new GlobalizedLocalizationService(envServiceMock, options);
            var norwegianString = service.GetString(IdSrvConstants.Messages, MessageIds.MissingClientId);

            Assert.Equal("ClientId mangler", norwegianString);
        }
Exemplo n.º 6
0
        public void UsesFallbackWhenIsSet()
        {
            const string someid = "SomeId";
            var          mock   = new Fake <ILocalizationService>();

            mock.CallsTo(loc => loc.GetString(IdSrvConstants.Messages, someid)).Returns("fallbackValue");

            var service = new GlobalizedLocalizationService(new LocaleOptions {
                Locale = "nb-NO", FallbackLocalizationService = mock.FakedObject
            });

            var result = service.GetString(IdSrvConstants.Messages, someid);

            Assert.Equal("fallbackValue", result);
        }
Exemplo n.º 7
0
        public void UnknownLocalesUseDefaultLocale(string locale)
        {
            var options = new LocaleOptions
            {
                LocaleProvider = env => locale
            };

            var envServiceMock = new Fake <OwinEnvironmentService>().FakedObject;

            var service = new GlobalizedLocalizationService(envServiceMock, options);

            var resource = service.GetString(IdSrvConstants.Messages, MessageIds.MissingClientId);

            Assert.Equal("client_id is missing", resource);
        }
Exemplo n.º 8
0
        public void HasTranslationsForAllPublicIds()
        {
            var availableCultures = GlobalizedLocalizationService.GetAvailableLocales();

            foreach (var availableCulture in availableCultures)
            {
                if (availableCulture == Constants.Default) // Bug in idsrv3 v.1.0.0 with regards to these public ids
                {
                    continue;
                }
                AssertTranslationExists(availableCulture, TestHelper.GetAllMessageIds(), IdSrvConstants.Messages);
                AssertTranslationExists(availableCulture, TestHelper.GetAllEventIds(), IdSrvConstants.Events);
                AssertTranslationExists(availableCulture, TestHelper.GetAllScopeIds(), IdSrvConstants.Scopes);
            }
        }
Exemplo n.º 9
0
        public void FetchesResrouceBasedOnOwinEnvironment()
        {
            IDictionary <string, object> environment = new Dictionary <string, object>();

            environment["UserSettings.Language"] = "nb-NO";
            var owinEnvironmentService = new OwinEnvironmentService(environment);
            var options = new LocaleOptions
            {
                LocaleProvider = env => env["UserSettings.Language"].ToString()
            };

            var service         = new GlobalizedLocalizationService(owinEnvironmentService, options);
            var norwegianString = service.GetString(IdSrvConstants.Messages, MessageIds.MissingClientId);

            Assert.Equal("ClientId mangler", norwegianString);
        }
Exemplo n.º 10
0
        public void HasTranslationsForIdsOnUppercaseFormat()
        {
            var messageidsUppercased = TestHelper.GetAllMessageIds().Select(mid => mid.ToUpper()).ToList();
            var eventidsUppercased   = TestHelper.GetAllEventIds().Select(mid => mid.ToUpper()).ToList();
            var scopeidsUppercased   = TestHelper.GetAllScopeIds().Select(mid => mid.ToUpper()).ToList();

            var availableCultures = GlobalizedLocalizationService.GetAvailableLocales();

            foreach (var availableCulture in availableCultures)
            {
                if (availableCulture == Constants.Default) // DefaultLocaleService does not handle invariant casing
                {
                    continue;
                }
                AssertTranslationExists(availableCulture, messageidsUppercased, IdSrvConstants.Messages);
                AssertTranslationExists(availableCulture, eventidsUppercased, IdSrvConstants.Events);
                AssertTranslationExists(availableCulture, scopeidsUppercased, IdSrvConstants.Scopes);
            }
        }
 public void HasCorrectCount()
 {
     Assert.Equal(6, GlobalizedLocalizationService.GetAvailableLocales().Count());
 }
 public void ContainsLocales(string locale)
 {
     Assert.Contains(GlobalizedLocalizationService.GetAvailableLocales(), s => s.Equals(locale));
 }