AjaxLink を使用してサイトのロケールを変更しています。
@Override
public void onClick(AjaxRequestTarget target) {
Session.get().setLocale(newLanguage.getLocale());
// Add whole page to update instead of single components
target.add(getPage());
}
期待どおりに機能します。フォームのコンテンツが保持されている間、ページ全体のすべての i18n 文字列が更新されます。素晴らしい。
しかし、WicketTester でのテストはうまくいきません。clickLink と executeAjaxBehavior の両方のメソッドが AjaxLink をトリガーしますが、WicketTester はモデル値の変更を検出しません。
@Test
public void check() {
tester.startPage(SwitchLangPage.class);
tester.clickLink("link", true);
tester.assertModelValue("link:label", "English");
}
ここで重要なことを見逃していますか?
(ウィケット 6.19)