validwhenでハマる
ハマると言うほどのことでも無かったのだけど、2つ値が一致しているかどうかというvalidwhenを書いたが、これが思ったように動かない。
<field property="foo" depends="validwhen"> <arg0 key="labels.foo" resource="true" /> <var> <var-name>test</var-name> <var-value>(bar != *this*)</var-value> </var> </field>
思ったように動かないというより、真逆の動きになる。よくよく考えてみれば、validwhen だから、テスト式が成立のときに valid という意味なんだよね。なぜか勝手に脳内で、「このテストが成立するときにエラーにする」という意味になっていた。ううう。
ということで
<var-value>(bar == *this*)</var-value>
で思うとおりの動作になりました。
パスワードの確認欄との整合性チェックなんかの場合に、有用でしょうか。今回は鍵認証で使ったんですが、まあ似たようなもんでしょう。