Как я могу проверить XForms, используя представления, если у меня нет доступных служб? - PullRequest
0 голосов
/ 01 октября 2011

Я хочу протестировать XForms, которые выполняют отправку, но в моей среде у меня нет доступа к службам, которые в конечном итоге будут вызывать представления, либо потому, что они еще не разработаны, либо находятся за брандмауэром. С некоторыми реализациями XForms я могу обойти это, используя file:/// URL, чтобы проверить, что моя форма отправляет правильные данные, но Orbeon Forms не поддерживает запись на диск с file:/// URL при отправке. Какую другую, более портативную альтернативу я мог бы использовать?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Если вам нужно протестировать отправку с использованием экземпляра замены, аналогичная служба эхо-ответов ответит сущностью запроса и тем же типом контента:

<xforms:submission id="echo-submission" method="post"
    resource="http://xformstest.org/cgi-bin/echoinstance.sh"
    ref="instance('data')" replace="instance"/>

Обратите внимание, что пропускная способность на xformstest.org ограничена, так что если вам нужно сделать сервисную часть echo или echoinstance, если ваша инфраструктура тестирования интеграции для постоянного использования, обратитесь за помощью в настройке вашей собственной копии сервиса.

0 голосов
/ 01 октября 2011

Использование эхо-сервиса XForms Test Suite

Вы можете использовать службу echo, также используемую комплектом тестов XForms . Этот эхо-сервис возвращает HTML-страницу с информацией о том, что вы отправили, что является хорошим способом проверить правильность отправляемых вами данных. Ваша заявка будет рассмотрена ниже, а также приведен полный пример с использованием эхо-службы набора тестов XForms .

<xforms:submission id="echo-submission" method="post"
    resource="http://xformstest.org/cgi-bin/echo.sh"
    ref="instance('data')" replace="all"/>

Использование службы эха jsFiddle

Вы можете использовать службу jsFiddle echo для XML , которая позволяет вам replace="instance". Служба эха jsFiddle не принимает XML в теле POST, а является параметром xml, закодированным в форме в POST. Поэтому вам необходимо сначала закодировать XML-файл, который вы хотите опубликовать, как это сделано в представленной ниже статье, а также в этом полном примере с использованием службы эха jsFiddle .

<xforms:submission id="echo-submission" method="post"
        resource="http://jsfiddle.net/echo/xml/"
        serialization="application/x-www-form-urlencoded"
        ref="instance('jsfiddle-out')" replace="instance" instance="jsfiddle-in">
    <xforms:setvalue ev:event="xforms-submit" ref="instance('jsfiddle-out')"
                     value="saxon:serialize(instance('data'), 'xml')"/>
</xforms:submission>
...