Я хочу протестировать воздушные приложения и воздушные библиотеки с помощью flexmojos 3.9-SNAPSHOT.Тем не менее, хотя flexmojos действительно поддерживает air, он пытается запустить swf, сгенерированный сборкой, с помощью флеш-плеера, и, поскольку мне нужно использовать собственные библиотеки air, я хотел запустить тесты с помощью adl (средство запуска отладки AIR).
Для этого я клонировал flexmojos в github.com в этот репозиторий (http://github.com/mi007/flexmojos). Затем я создал класс, который создал файл -app.xml для файла TestRunner.swf, который был сгенерирован и запущен: adl TestRunner-app.xml
Однако перед завершением теста он должен вызвать сервер в порту 13540, чтобы сообщить о чем-то. Когда это происходит, я получаю следующую ошибку:
Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: app:/TestRunner.swf cannot load data from 127.0.0.1:13540.
at org.sonatype.flexmojos.unitestingsupport::ControlSocket/connect()[/Users/rafael/p2d/others/flexmojos/flexmojos-testing/flexmojos-unittest-support/src/main/flex/org/sonatype/flexmojos/unitestingsupport/ControlSocket.as:46]
at org.sonatype.flexmojos.unitestingsupport::TestApplication/runTests()[/Users/rafael/p2d/others/flexmojos/flexmojos-testing/flexmojos-unittest-support/src/main/flex/org/sonatype/flexmojos/unitestingsupport/TestApplication.as:52]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:9408]
at mx.core::UIComponent/set initialized()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:8733]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\galaga\frameworks\projects\framework\src\mx\core\UIComponent.as:8673]
IЯ знаю, что он ранее вызывал сервер в порту 13539, потому что он печатает результаты теста на консоли. Я также знаю, что он открывает порт 13540, потому что мне удалось подключиться к нему по telnet. Однако по какой-то причине он не можетподключиться из эфирного приложения.
Учитывая обстоятельства, у меня есть следующие вопросы:
1) Есть ли какие-либо хорошие документычто я могу прочитать, чтобы понять, как работает эта структура безопасности?Единственная найденная мною документация ужасно сбивала с толку.
2) Есть ли у кого-нибудь идеи или намеки на то, что может произойти?
3) Я где-то читал, что flexmojos взламывает инфраструктуру безопасности, поэтомучто flex-приложения могут без проблем открыть сокет для localhost во время тестов.Есть ли документация о том, как это делается?
Спасибо,