1
0
Fork 0
mirror of https://github.com/middleman/middleman.git synced 2022-11-09 12:20:27 -05:00
middleman--middleman/middleman-core/features/i18n_preview.feature
Gregor Schmidt b928d245b2 Use i18n fallbacks when looking up localized paths (#2116)
* Use i18n fallbacks when looking up localized paths

In #853, the usage of i18n-fallbacks was introduced. For undocumented reasons, the fallbacks are ignored for localized paths, though.

This commit removes this limitation, and adds a test to make sure, that it works as desired.

* Extending fixture data to fix tests

With the introduction of i18n fallbacks for localized paths, the tests which set the default locale to Spanish failed, since the Spanish path mappings were now used for the English locale as well. So the expected paths were now incorrect.

This change adds the expected paths to the English i18n file, so that the tests pass again.
2017-10-12 16:38:05 -07:00

256 lines
7.9 KiB
Gherkin

Feature: i18n Preview
In order to preview localized html
Scenario: Running localize with the default config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n
"""
Given the Server is running at "i18n-test-app"
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When I go to "/morning.html"
Then I should see "Good morning"
When I go to "/one.html"
Then I should see "Only one"
When I go to "/defaults_en/index.html"
Then I should see "File Not Found"
When I go to "/en/index.html"
Then I should see "File Not Found"
When I go to "/en/morning.html"
Then I should see "File Not Found"
When I go to "/defaults_es/index.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "Como Esta?"
When I go to "/es/hola.html"
Then I should see "Hola World"
When I go to "/es/manana.html"
Then I should see "Buenos días"
When I go to "/es/una.html"
Then I should see "Solamente una"
When I go to "/terms-and-conditions.html"
Then I should see "Terms & Conditions"
When I go to "/es/terms-and-conditions.html"
Then I should see "Condiciones Generales"
Scenario: A template changes i18n during preview
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n
"""
Given the Server is running at "i18n-test-app"
And the file "locales/en.yml" has the contents
"""
---
en:
greetings: "Howdy"
hi: "Hello"
"""
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When the file "locales/en.yml" has the contents
"""
---
en:
greetings: "How You Doin"
hi: "Sup"
"""
When I go to "/"
Then I should see "How You Doin"
When I go to "/hello.html"
Then I should see "Sup World"
Scenario: Running localize with the alt path config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, path: "/lang_:locale/"
"""
Given the Server is running at "i18n-test-app"
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When I go to "/lang_en/index.html"
Then I should see "File Not Found"
When I go to "/lang_es/index.html"
Then I should see "Como Esta?"
When I go to "/lang_es/hola.html"
Then I should see "Hola World"
Scenario: Running localize with the alt root config
Given a fixture app "i18n-alt-root-app"
And a file named "config.rb" with:
"""
activate :i18n, templates_dir: "lang_data"
"""
Given the Server is running at "i18n-alt-root-app"
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When I go to "/en/index.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "Como Esta?"
When I go to "/es/hola.html"
Then I should see "Hola World"
Scenario: Running localize with the lang map config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, lang_map: { en: :english, es: :spanish }
"""
Given the Server is running at "i18n-test-app"
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When I go to "/english/index.html"
Then I should see "File Not Found"
When I go to "/spanish/index.html"
Then I should see "Como Esta?"
When I go to "/spanish/hola.html"
Then I should see "Hola World"
Scenario: Running localize with a non-English mount config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, mount_at_root: :es
"""
Given the Server is running at "i18n-test-app"
When I go to "/en/index.html"
Then I should see "Howdy"
When I go to "/en/hello.html"
Then I should see "Hello World"
When I go to "/"
Then I should see "Como Esta?"
When I go to "/hola.html"
Then I should see "Hola World"
When I go to "/manana.html"
Then I should see "Buenos días"
When I go to "/hello.html"
Then I should see "File Not Found"
When I go to "/en/morning.html"
Then I should see "Good morning"
When I go to "/es/manana.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "File Not Found"
When I go to "/es/hola.html"
Then I should see "File Not Found"
Scenario: Running localize with a non-English lang subset
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, langs: :es
"""
Given the Server is running at "i18n-test-app"
When I go to "/en/index.html"
Then I should see "File Not Found"
When I go to "/en/hello.html"
Then I should see "File Not Found"
When I go to "/"
Then I should see "Como Esta?"
When I go to "/hola.html"
Then I should see "Hola World"
When I go to "/hello.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "File Not Found"
When I go to "/es/hola.html"
Then I should see "File Not Found"
Scenario: Running localize with the no mount config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, mount_at_root: false
"""
Given the Server is running at "i18n-test-app"
When I go to "/en/index.html"
Then I should see "Howdy"
When I go to "/en/hello.html"
Then I should see "Hello World"
When I go to "/"
Then I should see "File Not Found"
When I go to "/hello.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "Como Esta?"
When I go to "/es/hola.html"
Then I should see "Hola World"
Scenario: Running localize with the subset config
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n, langs: [:en]
"""
Given the Server is running at "i18n-test-app"
When I go to "/"
Then I should see "Howdy"
When I go to "/hello.html"
Then I should see "Hello World"
When I go to "/en/index.html"
Then I should see "File Not Found"
When I go to "/es/index.html"
Then I should see "File Not Found"
When I go to "/es/hola.html"
Then I should see "File Not Found"
Scenario: Running localize with relative_assets
Given a fixture app "i18n-test-app"
And a file named "config.rb" with:
"""
activate :i18n
activate :relative_assets
"""
Given the Server is running at "i18n-test-app"
When I go to "/"
Then I should see '"stylesheets/site.css"'
When I go to "/hello.html"
Then I should see '"stylesheets/site.css"'
When I go to "/es/index.html"
Then I should see '"../stylesheets/site.css"'
When I go to "/es/hola.html"
Then I should see '"../stylesheets/site.css"'
Scenario: Missing translations fall back to the default locale
Given a fixture app "i18n-default-app"
And a file named "config.rb" with:
"""
activate :i18n, mount_at_root: :es
"""
Given the Server is running at "i18n-default-app"
When I go to "/en/"
Then I should see "Default locale: es"
Then I should see "Current locale: en"
Then I should see "Buenos días"
Then I should see "Howdy"
Scenario: Nested i18n yaml
Given a fixture app "i18n-nested-app"
And a file named "config.rb" with:
"""
activate :i18n
"""
Given the Server is running at "i18n-nested-app"
When I go to "/"
Then I should see "Howdy"
Then I should see "More"
When I go to "/es/"
Then I should see "Como Esta?"
Then I should see "Mucho"