├── .gitignore ├── Dockerfile ├── INSTALL.md ├── LICENSE.md ├── README-zh_CN.md ├── README.md ├── f2etest-chrome ├── browsers.html ├── img │ ├── icon-128.png │ ├── icon-64.png │ ├── icon.png │ └── loading.gif ├── js │ ├── browsers.js │ ├── jquery-1.8.3.min.js │ ├── options.js │ └── util.js ├── manifest.json └── options.html ├── f2etest-client ├── f2etest-browsers │ ├── app │ │ ├── 1. 强制代理.bat │ │ ├── 2. 禁用代理.bat │ │ ├── 3. 桌面模式.bat │ │ ├── 4. 桌面模式APP.bat │ │ ├── 模板选择指南.md │ │ └── 特殊应用 │ │ │ ├── 360chrome.bat │ │ │ ├── 360se.bat │ │ │ ├── chrome.bat │ │ │ ├── edge.bat │ │ │ ├── firefox.bat │ │ │ └── hostsshare.bat │ ├── curl │ │ ├── CHANGES │ │ ├── COPYING │ │ ├── README │ │ ├── RELEASE-NOTES │ │ ├── build.txt │ │ ├── curl.exe │ │ ├── curl.html │ │ ├── curl.pdf │ │ ├── libcurl.dll │ │ ├── libeay32.dll │ │ ├── mk-ca-bundle.vbs │ │ └── ssleay32.dll │ └── www │ │ └── setuser.asp └── f2etest-webdriver │ ├── RDP.exe │ ├── rdp │ ├── initAllNodes.bat │ ├── node01.rdp │ ├── node02.rdp │ ├── node03.rdp │ ├── node04.rdp │ ├── node05.rdp │ ├── node06.rdp │ ├── node07.rdp │ ├── node08.rdp │ ├── node09.rdp │ ├── node10.rdp │ ├── node11.rdp │ ├── node12.rdp │ ├── node13.rdp │ ├── node14.rdp │ ├── node15.rdp │ ├── node16.rdp │ ├── nodewatch.js │ └── openAllNode.bat │ ├── webdriver │ ├── IEDriverServer.exe │ ├── IEDriverServer64.exe │ ├── chromedriver.exe │ ├── opennode.bat │ ├── selenium-server-standalone-2.53.1.jar │ └── wdproxy.js │ ├── 批量设置节点用户.vbs │ └── 节点部署教程.md ├── f2etest-docker ├── guacamole.properties ├── nginx.conf ├── nginx.repo ├── noauth-config.xml ├── setup.sh └── tomcat8 ├── f2etest-guacamole ├── Install.md ├── README.md ├── guacamole-0.9.3.war ├── guacamole-client-0.9.3 │ ├── README │ ├── extensions │ │ ├── guacamole-auth-ldap │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── doc │ │ │ │ └── examples │ │ │ │ │ └── exampleConfigGroup.ldif │ │ │ ├── pom.xml │ │ │ ├── schema │ │ │ │ ├── guacConfigGroup.ldif │ │ │ │ └── guacConfigGroup.schema │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── assembly │ │ │ │ └── dist.xml │ │ │ │ └── java │ │ │ │ └── net │ │ │ │ └── sourceforge │ │ │ │ └── guacamole │ │ │ │ └── net │ │ │ │ └── auth │ │ │ │ └── ldap │ │ │ │ ├── LDAPAuthenticationProvider.java │ │ │ │ └── properties │ │ │ │ └── LDAPGuacamoleProperties.java │ │ ├── guacamole-auth-mysql │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── doc │ │ │ │ └── example │ │ │ │ │ └── settings.xml │ │ │ ├── pom.xml │ │ │ ├── schema │ │ │ │ ├── 001-create-schema.sql │ │ │ │ ├── 002-create-admin-user.sql │ │ │ │ └── upgrade │ │ │ │ │ └── upgrade-pre-0.8.2.sql │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── assembly │ │ │ │ └── dist.xml │ │ │ │ ├── java │ │ │ │ └── net │ │ │ │ │ └── sourceforge │ │ │ │ │ └── guacamole │ │ │ │ │ └── net │ │ │ │ │ └── auth │ │ │ │ │ └── mysql │ │ │ │ │ ├── ActiveConnectionMap.java │ │ │ │ │ ├── ConnectionDirectory.java │ │ │ │ │ ├── ConnectionGroupDirectory.java │ │ │ │ │ ├── MySQLAuthenticationProvider.java │ │ │ │ │ ├── MySQLConnection.java │ │ │ │ │ ├── MySQLConnectionGroup.java │ │ │ │ │ ├── MySQLConnectionRecord.java │ │ │ │ │ ├── MySQLConstants.java │ │ │ │ │ ├── MySQLGuacamoleSocket.java │ │ │ │ │ ├── MySQLUser.java │ │ │ │ │ ├── MySQLUserContext.java │ │ │ │ │ ├── UserDirectory.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── properties │ │ │ │ │ ├── MySQLGuacamoleProperties.java │ │ │ │ │ └── package-info.java │ │ │ │ │ └── service │ │ │ │ │ ├── ConnectionGroupService.java │ │ │ │ │ ├── ConnectionService.java │ │ │ │ │ ├── PasswordEncryptionService.java │ │ │ │ │ ├── PermissionCheckService.java │ │ │ │ │ ├── SHA256PasswordEncryptionService.java │ │ │ │ │ ├── SaltService.java │ │ │ │ │ ├── SecureRandomSaltService.java │ │ │ │ │ ├── UserService.java │ │ │ │ │ └── package-info.java │ │ │ │ └── resources │ │ │ │ └── generatorConfig.xml │ │ └── guacamole-auth-noauth │ │ │ ├── LICENSE │ │ │ ├── README │ │ │ ├── doc │ │ │ └── example │ │ │ │ └── noauth-config.xml │ │ │ ├── pom.xml │ │ │ └── src │ │ │ └── main │ │ │ ├── assembly │ │ │ └── dist.xml │ │ │ └── java │ │ │ └── net │ │ │ └── sourceforge │ │ │ └── guacamole │ │ │ └── net │ │ │ └── auth │ │ │ └── noauth │ │ │ ├── NoAuthConfigContentHandler.java │ │ │ └── NoAuthenticationProvider.java │ ├── guacamole-common-js │ │ ├── ChangeLog │ │ ├── LICENSE │ │ ├── README │ │ ├── doc │ │ │ └── guacamole-osk.dtd │ │ ├── pom.xml │ │ ├── src │ │ │ └── main │ │ │ │ └── webapp │ │ │ │ ├── common │ │ │ │ └── license.js │ │ │ │ └── modules │ │ │ │ ├── ArrayBufferReader.js │ │ │ │ ├── ArrayBufferWriter.js │ │ │ │ ├── AudioChannel.js │ │ │ │ ├── BlobReader.js │ │ │ │ ├── Client.js │ │ │ │ ├── Display.js │ │ │ │ ├── InputStream.js │ │ │ │ ├── IntegerPool.js │ │ │ │ ├── Keyboard.js │ │ │ │ ├── Layer.js │ │ │ │ ├── Mouse.js │ │ │ │ ├── OnScreenKeyboard.js │ │ │ │ ├── OutputStream.js │ │ │ │ ├── Parser.js │ │ │ │ ├── Status.js │ │ │ │ ├── StringReader.js │ │ │ │ ├── StringWriter.js │ │ │ │ ├── Tunnel.js │ │ │ │ └── Version.js │ │ └── static.xml │ ├── guacamole-common │ │ ├── ChangeLog │ │ ├── LICENSE │ │ ├── README │ │ ├── doc │ │ │ ├── Doxyfile │ │ │ └── example │ │ │ │ └── ExampleTunnelServlet.java │ │ ├── pom.xml │ │ └── src │ │ │ ├── main │ │ │ └── java │ │ │ │ └── org │ │ │ │ └── glyptodon │ │ │ │ └── guacamole │ │ │ │ ├── GuacamoleClientBadTypeException.java │ │ │ │ ├── GuacamoleClientException.java │ │ │ │ ├── GuacamoleClientOverrunException.java │ │ │ │ ├── GuacamoleClientTimeoutException.java │ │ │ │ ├── GuacamoleClientTooManyException.java │ │ │ │ ├── GuacamoleException.java │ │ │ │ ├── GuacamoleResourceConflictException.java │ │ │ │ ├── GuacamoleResourceNotFoundException.java │ │ │ │ ├── GuacamoleSecurityException.java │ │ │ │ ├── GuacamoleServerBusyException.java │ │ │ │ ├── GuacamoleServerException.java │ │ │ │ ├── GuacamoleUnauthorizedException.java │ │ │ │ ├── GuacamoleUnsupportedException.java │ │ │ │ ├── GuacamoleUpstreamException.java │ │ │ │ ├── GuacamoleUpstreamTimeoutException.java │ │ │ │ ├── io │ │ │ │ ├── GuacamoleReader.java │ │ │ │ ├── GuacamoleWriter.java │ │ │ │ ├── ReaderGuacamoleReader.java │ │ │ │ ├── WriterGuacamoleWriter.java │ │ │ │ └── package-info.java │ │ │ │ ├── net │ │ │ │ ├── GuacamoleSocket.java │ │ │ │ ├── GuacamoleTunnel.java │ │ │ │ ├── InetGuacamoleSocket.java │ │ │ │ ├── SSLGuacamoleSocket.java │ │ │ │ └── package-info.java │ │ │ │ ├── package-info.java │ │ │ │ ├── protocol │ │ │ │ ├── ConfiguredGuacamoleSocket.java │ │ │ │ ├── FilteredGuacamoleReader.java │ │ │ │ ├── FilteredGuacamoleSocket.java │ │ │ │ ├── FilteredGuacamoleWriter.java │ │ │ │ ├── GuacamoleClientInformation.java │ │ │ │ ├── GuacamoleConfiguration.java │ │ │ │ ├── GuacamoleFilter.java │ │ │ │ ├── GuacamoleInstruction.java │ │ │ │ ├── GuacamoleParser.java │ │ │ │ ├── GuacamoleStatus.java │ │ │ │ └── package-info.java │ │ │ │ └── servlet │ │ │ │ ├── GuacamoleHTTPTunnelServlet.java │ │ │ │ ├── GuacamoleSession.java │ │ │ │ └── package-info.java │ │ │ └── test │ │ │ └── java │ │ │ └── org │ │ │ └── glyptodon │ │ │ └── guacamole │ │ │ ├── io │ │ │ └── ReaderGuacamoleReaderTest.java │ │ │ └── protocol │ │ │ ├── FilteredGuacamoleReaderTest.java │ │ │ ├── FilteredGuacamoleWriterTest.java │ │ │ └── GuacamoleParserTest.java │ ├── guacamole-ext │ │ ├── ChangeLog │ │ ├── LICENSE │ │ ├── README │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ └── java │ │ │ └── org │ │ │ └── glyptodon │ │ │ └── guacamole │ │ │ ├── net │ │ │ ├── auth │ │ │ │ ├── AbstractConnection.java │ │ │ │ ├── AbstractConnectionGroup.java │ │ │ │ ├── AbstractUser.java │ │ │ │ ├── AuthenticationProvider.java │ │ │ │ ├── Connection.java │ │ │ │ ├── ConnectionGroup.java │ │ │ │ ├── ConnectionRecord.java │ │ │ │ ├── Credentials.java │ │ │ │ ├── Directory.java │ │ │ │ ├── User.java │ │ │ │ ├── UserContext.java │ │ │ │ ├── package-info.java │ │ │ │ ├── permission │ │ │ │ │ ├── ConnectionGroupPermission.java │ │ │ │ │ ├── ConnectionPermission.java │ │ │ │ │ ├── ObjectPermission.java │ │ │ │ │ ├── Permission.java │ │ │ │ │ ├── SystemPermission.java │ │ │ │ │ ├── UserPermission.java │ │ │ │ │ └── package-info.java │ │ │ │ └── simple │ │ │ │ │ ├── SimpleAuthenticationProvider.java │ │ │ │ │ ├── SimpleConnection.java │ │ │ │ │ ├── SimpleConnectionDirectory.java │ │ │ │ │ ├── SimpleConnectionGroup.java │ │ │ │ │ ├── SimpleConnectionGroupDirectory.java │ │ │ │ │ ├── SimpleUser.java │ │ │ │ │ ├── SimpleUserContext.java │ │ │ │ │ ├── SimpleUserDirectory.java │ │ │ │ │ └── package-info.java │ │ │ └── event │ │ │ │ ├── AuthenticationFailureEvent.java │ │ │ │ ├── AuthenticationSuccessEvent.java │ │ │ │ ├── CredentialEvent.java │ │ │ │ ├── TunnelCloseEvent.java │ │ │ │ ├── TunnelConnectEvent.java │ │ │ │ ├── TunnelEvent.java │ │ │ │ ├── UserEvent.java │ │ │ │ ├── listener │ │ │ │ ├── AuthenticationFailureListener.java │ │ │ │ ├── AuthenticationSuccessListener.java │ │ │ │ ├── TunnelCloseListener.java │ │ │ │ ├── TunnelConnectListener.java │ │ │ │ └── package-info.java │ │ │ │ └── package-info.java │ │ │ └── properties │ │ │ ├── BooleanGuacamoleProperty.java │ │ │ ├── FileGuacamoleProperty.java │ │ │ ├── GuacamoleHome.java │ │ │ ├── GuacamoleProperties.java │ │ │ ├── GuacamoleProperty.java │ │ │ ├── IntegerGuacamoleProperty.java │ │ │ ├── LongGuacamoleProperty.java │ │ │ ├── StringGuacamoleProperty.java │ │ │ └── package-info.java │ ├── guacamole │ │ ├── ChangeLog │ │ ├── LICENSE │ │ ├── README │ │ ├── doc │ │ │ └── example │ │ │ │ ├── guacamole.properties │ │ │ │ └── user-mapping.xml │ │ ├── pom.xml │ │ └── src │ │ │ └── main │ │ │ ├── assembly │ │ │ └── dist.xml │ │ │ ├── java │ │ │ ├── net │ │ │ │ └── sourceforge │ │ │ │ │ └── guacamole │ │ │ │ │ └── net │ │ │ │ │ ├── auth │ │ │ │ │ └── noauth │ │ │ │ │ │ ├── NoAuthConfigContentHandler.java │ │ │ │ │ │ └── NoAuthenticationProvider.java │ │ │ │ │ └── basic │ │ │ │ │ └── BasicFileAuthenticationProvider.java │ │ │ └── org │ │ │ │ └── glyptodon │ │ │ │ └── guacamole │ │ │ │ ├── net │ │ │ │ ├── auth │ │ │ │ │ ├── AbstractConnection.java │ │ │ │ │ ├── AbstractConnectionGroup.java │ │ │ │ │ ├── AbstractUser.java │ │ │ │ │ ├── AuthenticationProvider.java │ │ │ │ │ ├── Connection.java │ │ │ │ │ ├── ConnectionGroup.java │ │ │ │ │ ├── ConnectionRecord.java │ │ │ │ │ ├── Credentials.java │ │ │ │ │ ├── Directory.java │ │ │ │ │ ├── User.java │ │ │ │ │ ├── UserContext.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── permission │ │ │ │ │ │ ├── ConnectionGroupPermission.java │ │ │ │ │ │ ├── ConnectionPermission.java │ │ │ │ │ │ ├── ObjectPermission.java │ │ │ │ │ │ ├── Permission.java │ │ │ │ │ │ ├── SystemPermission.java │ │ │ │ │ │ ├── UserPermission.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── simple │ │ │ │ │ │ ├── SimpleAuthenticationProvider.java │ │ │ │ │ │ ├── SimpleConnection.java │ │ │ │ │ │ ├── SimpleConnectionDirectory.java │ │ │ │ │ │ ├── SimpleConnectionGroup.java │ │ │ │ │ │ ├── SimpleConnectionGroupDirectory.java │ │ │ │ │ │ ├── SimpleUser.java │ │ │ │ │ │ ├── SimpleUserContext.java │ │ │ │ │ │ ├── SimpleUserDirectory.java │ │ │ │ │ │ └── package-info.java │ │ │ │ ├── basic │ │ │ │ │ ├── AuthenticatingHttpServlet.java │ │ │ │ │ ├── BasicGuacamoleTunnelServlet.java │ │ │ │ │ ├── BasicLogin.java │ │ │ │ │ ├── BasicLogout.java │ │ │ │ │ ├── BasicTunnelRequestUtility.java │ │ │ │ │ ├── CaptureClipboard.java │ │ │ │ │ ├── ClipboardState.java │ │ │ │ │ ├── GuacamoleClassLoader.java │ │ │ │ │ ├── MonitoringGuacamoleReader.java │ │ │ │ │ ├── ProtocolInfo.java │ │ │ │ │ ├── ProtocolParameter.java │ │ │ │ │ ├── ProtocolParameterOption.java │ │ │ │ │ ├── WebSocketSupportLoader.java │ │ │ │ │ ├── auth │ │ │ │ │ │ ├── Authorization.java │ │ │ │ │ │ ├── UserMapping.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── crud │ │ │ │ │ │ ├── connectiongroups │ │ │ │ │ │ │ ├── ConnectionGroupUtility.java │ │ │ │ │ │ │ ├── Create.java │ │ │ │ │ │ │ ├── Delete.java │ │ │ │ │ │ │ ├── DummyConnectionGroup.java │ │ │ │ │ │ │ ├── List.java │ │ │ │ │ │ │ ├── Move.java │ │ │ │ │ │ │ ├── Update.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── connections │ │ │ │ │ │ │ ├── ConnectionUtility.java │ │ │ │ │ │ │ ├── Create.java │ │ │ │ │ │ │ ├── Delete.java │ │ │ │ │ │ │ ├── DummyConnection.java │ │ │ │ │ │ │ ├── List.java │ │ │ │ │ │ │ ├── Move.java │ │ │ │ │ │ │ ├── Update.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── permissions │ │ │ │ │ │ │ ├── List.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ ├── protocols │ │ │ │ │ │ │ ├── List.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── users │ │ │ │ │ │ │ ├── Create.java │ │ │ │ │ │ │ ├── Delete.java │ │ │ │ │ │ │ ├── DummyUser.java │ │ │ │ │ │ │ ├── List.java │ │ │ │ │ │ │ ├── Update.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── event │ │ │ │ │ │ ├── SessionListenerCollection.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── package-info.java │ │ │ │ │ ├── properties │ │ │ │ │ │ ├── AuthenticationProviderProperty.java │ │ │ │ │ │ ├── BasicGuacamoleProperties.java │ │ │ │ │ │ ├── EventListenersProperty.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ ├── websocket │ │ │ │ │ │ ├── jetty │ │ │ │ │ │ │ ├── AuthenticatingWebSocketServlet.java │ │ │ │ │ │ │ ├── BasicGuacamoleWebSocketTunnelServlet.java │ │ │ │ │ │ │ ├── GuacamoleWebSocketTunnelServlet.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── tomcat │ │ │ │ │ │ │ ├── AuthenticatingWebSocketServlet.java │ │ │ │ │ │ │ ├── BasicGuacamoleWebSocketTunnelServlet.java │ │ │ │ │ │ │ ├── GuacamoleWebSocketTunnelServlet.java │ │ │ │ │ │ │ └── package-info.java │ │ │ │ │ └── xml │ │ │ │ │ │ ├── DocumentHandler.java │ │ │ │ │ │ ├── TagHandler.java │ │ │ │ │ │ ├── package-info.java │ │ │ │ │ │ ├── protocol │ │ │ │ │ │ ├── OptionTagHandler.java │ │ │ │ │ │ ├── ParamTagHandler.java │ │ │ │ │ │ ├── ProtocolTagHandler.java │ │ │ │ │ │ └── package-info.java │ │ │ │ │ │ └── user_mapping │ │ │ │ │ │ ├── AuthorizeTagHandler.java │ │ │ │ │ │ ├── ConnectionTagHandler.java │ │ │ │ │ │ ├── ParamTagHandler.java │ │ │ │ │ │ ├── ProtocolTagHandler.java │ │ │ │ │ │ ├── UserMappingTagHandler.java │ │ │ │ │ │ └── package-info.java │ │ │ │ └── event │ │ │ │ │ ├── AuthenticationFailureEvent.java │ │ │ │ │ ├── AuthenticationSuccessEvent.java │ │ │ │ │ ├── CredentialEvent.java │ │ │ │ │ ├── TunnelCloseEvent.java │ │ │ │ │ ├── TunnelConnectEvent.java │ │ │ │ │ ├── TunnelEvent.java │ │ │ │ │ ├── UserEvent.java │ │ │ │ │ ├── listener │ │ │ │ │ ├── AuthenticationFailureListener.java │ │ │ │ │ ├── AuthenticationSuccessListener.java │ │ │ │ │ ├── TunnelCloseListener.java │ │ │ │ │ ├── TunnelConnectListener.java │ │ │ │ │ └── package-info.java │ │ │ │ │ └── package-info.java │ │ │ │ └── properties │ │ │ │ ├── BooleanGuacamoleProperty.java │ │ │ │ ├── FileGuacamoleProperty.java │ │ │ │ ├── GuacamoleHome.java │ │ │ │ ├── GuacamoleProperties.java │ │ │ │ ├── GuacamoleProperty.java │ │ │ │ ├── IntegerGuacamoleProperty.java │ │ │ │ ├── LongGuacamoleProperty.java │ │ │ │ ├── StringGuacamoleProperty.java │ │ │ │ └── package-info.java │ │ │ ├── resources │ │ │ └── net │ │ │ │ └── sourceforge │ │ │ │ └── guacamole │ │ │ │ └── net │ │ │ │ └── protocols │ │ │ │ ├── rdp.xml │ │ │ │ ├── ssh.xml │ │ │ │ ├── telnet.xml │ │ │ │ └── vnc.xml │ │ │ └── webapp │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ ├── admin.xhtml │ │ │ ├── client.xhtml │ │ │ ├── images │ │ │ ├── action-icons │ │ │ │ ├── guac-back.png │ │ │ │ ├── guac-close.png │ │ │ │ ├── guac-config.png │ │ │ │ ├── guac-delete.png │ │ │ │ ├── guac-first-page.png │ │ │ │ ├── guac-group-add.png │ │ │ │ ├── guac-last-page.png │ │ │ │ ├── guac-logout.png │ │ │ │ ├── guac-monitor-add.png │ │ │ │ ├── guac-next-page.png │ │ │ │ ├── guac-prev-page.png │ │ │ │ └── guac-user-add.png │ │ │ ├── arrows │ │ │ │ ├── arrows-d.png │ │ │ │ ├── arrows-l.png │ │ │ │ ├── arrows-r.png │ │ │ │ └── arrows-u.png │ │ │ ├── group-icons │ │ │ │ ├── guac-closed.png │ │ │ │ └── guac-open.png │ │ │ ├── guac-mono-192.png │ │ │ ├── guacamole-logo-144.png │ │ │ ├── guacamole-logo-24.png │ │ │ ├── guacamole-logo-64.png │ │ │ ├── mouse │ │ │ │ ├── blank.cur │ │ │ │ ├── blank.gif │ │ │ │ └── dot.gif │ │ │ ├── noguacamole-logo-24.png │ │ │ ├── progress.png │ │ │ ├── protocol-icons │ │ │ │ ├── guac-monitor.png │ │ │ │ ├── guac-plug.png │ │ │ │ └── guac-text.png │ │ │ ├── settings │ │ │ │ ├── tablet-keys.png │ │ │ │ ├── touchpad.png │ │ │ │ ├── touchscreen.png │ │ │ │ ├── zoom-in.png │ │ │ │ └── zoom-out.png │ │ │ └── user-icons │ │ │ │ └── guac-user.png │ │ │ ├── index.xhtml │ │ │ ├── layouts │ │ │ ├── en-us-qwerty-mobile.xml │ │ │ └── en-us-qwerty.xml │ │ │ ├── scripts │ │ │ ├── admin-ui.js │ │ │ ├── client-ui.js │ │ │ ├── guac-ui.js │ │ │ ├── history.js │ │ │ ├── lib │ │ │ │ ├── blob │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ └── blob.js │ │ │ │ └── filesaver │ │ │ │ │ ├── LICENSE.md │ │ │ │ │ └── filesaver.js │ │ │ ├── root-ui.js │ │ │ ├── service.js │ │ │ └── session.js │ │ │ └── styles │ │ │ ├── admin.css │ │ │ ├── animation.css │ │ │ ├── client.css │ │ │ ├── keyboard.css │ │ │ ├── login.css │ │ │ └── ui.css │ ├── pom.xml │ └── project-assembly.xml └── guacamole-server-0.9.3.tar.gz ├── f2etest-local ├── .editorconfig ├── .gitignore ├── .npmignore ├── README.md ├── bin │ └── f2etest-local ├── index.js ├── lib │ ├── hostsproxy.js │ └── utils.js └── package.json ├── f2etest-web ├── .gitignore ├── app.js ├── conf │ ├── app.json │ ├── country.json │ ├── server.json │ └── site.json ├── control │ ├── anonymousSso.js │ ├── api.js │ ├── applog.js │ ├── autotest.js │ ├── changelog.js │ ├── country.js │ ├── getAllBrowsers.js │ ├── getrdp.js │ ├── help.js │ ├── hosts.js │ ├── index.js │ ├── initUser.js │ ├── install.bat.js │ ├── install.js │ ├── jsunit.js │ ├── karma.conf.js │ ├── local.js │ ├── openapp.js │ ├── rdfeed.js │ ├── stat.js │ ├── statgroup.js │ ├── statteam.js │ ├── statuser.js │ ├── syncAllRemoteUsers.js │ ├── version.js │ ├── wdstat.js │ └── webdriver.js ├── cp │ └── jsunit.js ├── f2etest.sql ├── i18n │ ├── en.js │ ├── zh-cn.js │ └── zh-tw.js ├── lib │ ├── db.js │ ├── hostsproxy.js │ ├── hostsserver.js │ ├── initUser.js │ ├── sso.js │ ├── utils.js │ ├── webdriver.js │ └── webdriverhub.js ├── package.json ├── public │ ├── css │ │ ├── hljs.min.css │ │ ├── ie-warning.css │ │ └── index.css │ ├── demo │ │ ├── jasmine.html │ │ ├── lib │ │ │ ├── expect.js │ │ │ ├── jasmine-2.4.1 │ │ │ │ ├── console.js │ │ │ │ ├── jasmine.css │ │ │ │ ├── jasmine.js │ │ │ │ └── jasmine_favicon.png │ │ │ ├── mocha.css │ │ │ ├── mocha.js │ │ │ ├── qunit-1.14.0.css │ │ │ └── qunit-1.14.0.js │ │ ├── mocha.html │ │ ├── qunit.html │ │ └── src │ │ │ ├── jasmine.js │ │ │ ├── mocha1.js │ │ │ ├── mocha2.js │ │ │ └── qunit.js │ ├── favicon.ico │ ├── font │ │ └── anticon.woff │ ├── ie-warning.html │ ├── imgs │ │ ├── app │ │ │ ├── 2345.png │ │ │ ├── 360chrome.png │ │ │ ├── 360se.png │ │ │ ├── access.png │ │ │ ├── android.png │ │ │ ├── chrome.png │ │ │ ├── desktop.png │ │ │ ├── edge.png │ │ │ ├── excel.png │ │ │ ├── firefox.png │ │ │ ├── hostsshare.png │ │ │ ├── ie10.png │ │ │ ├── ie11.png │ │ │ ├── ie6.png │ │ │ ├── ie7.png │ │ │ ├── ie8.png │ │ │ ├── ie9.png │ │ │ ├── liebao.png │ │ │ ├── maxthon.png │ │ │ ├── navicat.png │ │ │ ├── notepadplus.png │ │ │ ├── opera.png │ │ │ ├── phantomjs.png │ │ │ ├── powerpoint.png │ │ │ ├── qqbrowser.png │ │ │ ├── sogou.png │ │ │ ├── theworld.png │ │ │ ├── ucbrowser.png │ │ │ ├── word.png │ │ │ └── xmind.png │ │ ├── arrow.png │ │ ├── bg │ │ │ ├── 1.jpg │ │ │ ├── 2.jpg │ │ │ ├── 3.jpg │ │ │ └── 4.jpg │ │ ├── cover.png │ │ ├── f2etest.png │ │ ├── flag │ │ │ ├── br.png │ │ │ ├── by.png │ │ │ ├── ca.png │ │ │ ├── es.png │ │ │ ├── fr.png │ │ │ ├── il.png │ │ │ ├── it.png │ │ │ ├── nl.png │ │ │ ├── ru.png │ │ │ ├── tr.png │ │ │ ├── ua.png │ │ │ ├── uk.png │ │ │ └── us.png │ │ ├── header_gradient.png │ │ ├── ico │ │ │ ├── 2345.ico │ │ │ ├── 360chrome.ico │ │ │ ├── 360se.ico │ │ │ ├── access.ico │ │ │ ├── chrome.ico │ │ │ ├── desktop.ico │ │ │ ├── edge.ico │ │ │ ├── excel.ico │ │ │ ├── firefox.ico │ │ │ ├── hostsshare.ico │ │ │ ├── ie10.ico │ │ │ ├── ie11.ico │ │ │ ├── ie6.ico │ │ │ ├── ie7.ico │ │ │ ├── ie8.ico │ │ │ ├── ie9.ico │ │ │ ├── liebao.ico │ │ │ ├── maxthon.ico │ │ │ ├── navicat.ico │ │ │ ├── notepadplus.ico │ │ │ ├── opera.ico │ │ │ ├── powerpoint.ico │ │ │ ├── qqbrowser.ico │ │ │ ├── sogou.ico │ │ │ ├── theworld.ico │ │ │ ├── ucbrowser.ico │ │ │ ├── word.ico │ │ │ └── xmind.ico │ │ ├── ie-warning │ │ │ ├── chrome.png │ │ │ ├── firefox.png │ │ │ ├── opera.png │ │ │ └── warning.png │ │ ├── loading.gif │ │ ├── running.svg │ │ ├── screenshot │ │ │ ├── chrome.png │ │ │ ├── mac.jpg │ │ │ └── windows.jpg │ │ ├── test │ │ │ ├── failed.png │ │ │ ├── jasmine.png │ │ │ ├── mocha.png │ │ │ ├── passed.png │ │ │ ├── qunit.png │ │ │ └── running.gif │ │ └── video.png │ ├── js │ │ ├── bg.js │ │ ├── highcharts-3d.js │ │ ├── highcharts-exporting.js │ │ ├── highcharts-theme.js │ │ ├── highcharts.js │ │ ├── highlight.min.js │ │ ├── ie-warning.js │ │ └── jquery-1.8.3.min.js │ └── jscover │ │ ├── LICENSE.txt │ │ ├── index.html │ │ ├── jscoverage-branch.js │ │ ├── jscoverage-clear-local-storage.html │ │ ├── jscoverage-common.js │ │ ├── jscoverage-highlight.css │ │ ├── jscoverage-ie.css │ │ ├── jscoverage-localstorage.js │ │ ├── jscoverage-throbber.gif │ │ ├── jscoverage.css │ │ └── jscoverage.js └── views │ ├── api.html │ ├── autotest.html │ ├── changelog.html │ ├── footer.html │ ├── header.html │ ├── help.html │ ├── index.html │ ├── install.html │ ├── jsunit.html │ ├── jsunit_nodejs.html │ ├── jsunit_result.html │ ├── jsunitapi.html │ ├── karma_conf.html │ ├── local.html │ ├── rdfeed.html │ ├── stat.html │ ├── statgroup.html │ ├── statteam.html │ ├── statuser.html │ ├── wdapi.html │ ├── wdnodejs.html │ ├── wdstat.html │ └── webdriver.html ├── hostsShare-client ├── build.bat ├── build │ ├── hostsShare.exe │ ├── icudt.dll │ └── nw.pak ├── css │ ├── codemirror-dialog.css │ ├── codemirror.css │ └── index.css ├── img │ └── icon.png ├── index.html ├── js │ ├── appinit.js │ ├── codemirror-dialog.js │ ├── codemirror-hosts.js │ ├── codemirror-search.js │ ├── codemirror-searchcursor.js │ ├── codemirror.js │ ├── common.js │ ├── jquery-1.7.2.min.js │ └── settings.js └── package.json ├── imgs ├── alibaba.png ├── chrome.png ├── jsunit.png ├── logo.png ├── mac.jpg ├── screenshot1.jpg ├── screenshot2.jpg ├── webdriver1.jpg └── windows.jpg └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | node_modules/ 4 | .idea/ 5 | *.log 6 | *.iml 7 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | The MIT License 3 | ================ 4 | 5 | Copyright (c) 2015-2016 alibaba.com 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | -------------------------------------------------------------------------------- /f2etest-chrome/img/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-chrome/img/icon-128.png -------------------------------------------------------------------------------- /f2etest-chrome/img/icon-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-chrome/img/icon-64.png -------------------------------------------------------------------------------- /f2etest-chrome/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-chrome/img/icon.png -------------------------------------------------------------------------------- /f2etest-chrome/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-chrome/img/loading.gif -------------------------------------------------------------------------------- /f2etest-chrome/js/options.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var f2etestUrl = localStorage.getItem('f2etestUrl') || ''; 3 | var jF2etestUrl = $('#f2etestUrl'); 4 | var jBtnSave = $('#btnSave'); 5 | 6 | jF2etestUrl.val(f2etestUrl).focus(); 7 | jBtnSave.click(function(){ 8 | var newF2etestUrl = jF2etestUrl.val(); 9 | if(newF2etestUrl){ 10 | if(/^\s*https?:\/\/[^\/]+$/.test(newF2etestUrl)){ 11 | var versionUrl = newF2etestUrl+'/version'; 12 | util.getJson(versionUrl, function(error, content){ 13 | if(error === null && content.name === 'f2etest'){ 14 | localStorage.setItem('f2etestUrl', newF2etestUrl); 15 | alert('保存成功!'); 16 | window.close(); 17 | } 18 | else{ 19 | alert('F2etest站点校验失败:' + versionUrl); 20 | } 21 | }); 22 | } 23 | else{ 24 | jF2etestUrl.focus(); 25 | alert('F2etest Url必需为如下格式:http://xxx.xxx.com'); 26 | } 27 | } 28 | else{ 29 | jF2etestUrl.focus(); 30 | alert('请输入F2etest Url'); 31 | } 32 | }); 33 | 34 | })(); -------------------------------------------------------------------------------- /f2etest-chrome/js/util.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var util = { 3 | getJson: function(url, callback){ 4 | this.getUrl(url, function(error, content){ 5 | if(error === null){ 6 | try{ 7 | content = JSON.parse(content); 8 | } 9 | catch(e){ 10 | error = 'json'; 11 | content = null; 12 | } 13 | } 14 | callback(error, content); 15 | }); 16 | }, 17 | getUrl: function(url, callback){ 18 | url = url + '?rnd=' + new Date().getTime(); 19 | var xmlhttp = new XMLHttpRequest(); 20 | xmlhttp.onreadystatechange = function() { 21 | if (xmlhttp.readyState === 4) { 22 | if(xmlhttp.status === 200){ 23 | if(xmlhttp.responseURL === url){ 24 | callback(null, xmlhttp.responseText); 25 | } 26 | else{ 27 | callback('redirect'); 28 | } 29 | } 30 | else{ 31 | callback(xmlhttp.status); 32 | } 33 | } 34 | }; 35 | xmlhttp.open("GET", url, true); 36 | xmlhttp.send(null); 37 | } 38 | } 39 | window.util = util; 40 | })(); -------------------------------------------------------------------------------- /f2etest-chrome/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 2, 3 | "name": "F2etest client", 4 | "description": "F2etest client for chrome", 5 | "version": "1.0.3", 6 | "browser_action": { 7 | "default_icon": "img/icon.png", 8 | "default_popup": "browsers.html" 9 | }, 10 | "icons": { 11 | "16": "img/icon.png", 12 | "64": "img/icon-64.png", 13 | "128": "img/icon-128.png" 14 | }, 15 | "options_page": "options.html", 16 | "permissions": ["tabs", "\u003Call_urls\u003E"] 17 | } 18 | -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/1. 强制代理.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/1. 强制代理.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/2. 禁用代理.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/2. 禁用代理.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/3. 桌面模式.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/3. 桌面模式.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/4. 桌面模式APP.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/4. 桌面模式APP.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/模板选择指南.md: -------------------------------------------------------------------------------- 1 | 模板介绍: 2 | 3 | 1. 强制代理.bat:适用于非桌面模式下需要hosts绑定的应用,例如:各类浏览器 4 | 2. 禁用代理.bat:适用于非桌面模式下不需要hosts绑定的应用,例如:hostsshare 5 | 3. 桌面模式.bat:适用于桌面模式,强制开启代理 6 | 4. 桌面模式APP.bat: 适用于桌面模式下的快捷方式,强制开启代理 7 | 8 | 选择指南: 9 | 10 | 1. 模板选择的标准:是否需要修改hosts的?例如各种浏览器,请使用模板1,例如Word,请使用模板2 11 | 2. 模板3和模板4,大部分情况下不需要,普通用户请忽略 -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/360chrome.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/360chrome.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/360se.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/360se.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/chrome.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/chrome.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/edge.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/edge.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/firefox.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/firefox.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/app/特殊应用/hostsshare.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/app/特殊应用/hostsshare.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/COPYING: -------------------------------------------------------------------------------- 1 | COPYRIGHT AND PERMISSION NOTICE 2 | 3 | Copyright (c) 1996 - 2013, Daniel Stenberg, . 4 | 5 | All rights reserved. 6 | 7 | Permission to use, copy, modify, and distribute this software for any purpose 8 | with or without fee is hereby granted, provided that the above copyright 9 | notice and this permission notice appear in all copies. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 13 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN 14 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, 15 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 16 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE 17 | OR OTHER DEALINGS IN THE SOFTWARE. 18 | 19 | Except as contained in this notice, the name of a copyright holder shall not 20 | be used in advertising or otherwise to promote the sale, use or other dealings 21 | in this Software without prior written authorization of the copyright holder. 22 | -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/README -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/build.txt: -------------------------------------------------------------------------------- 1 | This is a binary package of the cURL libcurl 2 | and the cURL command line tool: 3 | http://curl.haxx.se/ 4 | Please direct any questions you may have regarding usage, 5 | develoment, or bugs to one of the cURL mailing lists: 6 | http://curl.haxx.se/mail/ 7 | 8 | This package is build with MinGW32 compiler, 9 | and the DLL lib can be used for your own projects. 10 | 11 | version : 7.33.0 SSL SSPI LIBZ 12 | requires : OpenSSL 1.0.0k DLLs (included) 13 | license : http://curl.haxx.se/docs/copyright.html 14 | built by : G. Knauf 15 | 16 | curl 7.33.0 (i386-pc-win32) libcurl/7.33.0 OpenSSL/1.0.0k zlib/1.2.8 17 | Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smtp smtps telnet tftp 18 | Features: AsynchDNS GSS-Negotiate Largefile NTLM SSL SSPI libz 19 | 20 | -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/curl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/curl.exe -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/curl.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/curl.pdf -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/libcurl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/libcurl.dll -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/libeay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/libeay32.dll -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/curl/ssleay32.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-browsers/curl/ssleay32.dll -------------------------------------------------------------------------------- /f2etest-client/f2etest-browsers/www/setuser.asp: -------------------------------------------------------------------------------- 1 | <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><% 2 | Response.CharSet= "UTF-8" 3 | 4 | dim apiKey 5 | apiKey = "" ' 请填写f2etest-web下配置的相同apiKey 6 | 7 | dim key, username, password 8 | 9 | key = request.QueryString("key") 10 | username = request.QueryString("username") 11 | password = request.QueryString("password") 12 | 13 | if apiKey <> "" and key = apiKey and username <> "" then 14 | setUserPassword username,password 15 | if err <> 0 then 16 | response.write "set user failed" 17 | else 18 | response.write "ok" 19 | end if 20 | else 21 | response.write "api error" 22 | end if 23 | 24 | function setUserPassword(username, password) 25 | On Error Resume Next 26 | dim oSystem,oUser,oGroup 27 | 28 | Set oSystem=GetObject("WinNT://127.0.0.1") 29 | 30 | Set oUser=oSystem.GetObject("user",username) 31 | 32 | if err <> 0 then 33 | err = 0 34 | ' 增加新用户 35 | Set oUser=oSystem.Create("user",username) 36 | oUser.SetPassword password 37 | oUser.Put "userFlags", &h10040 '密码永不过期 38 | oUser.Setinfo 39 | 40 | Set oGroup=oSystem.GetObject("Group","Users") 41 | oGroup.Add ("winnt://"&username) 42 | else 43 | ' 修改密码 44 | oUser.SetPassword password 45 | oUser.Setinfo 46 | end if 47 | end function 48 | %> -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/RDP.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/RDP.exe -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/initAllNodes.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | SETLOCAL ENABLEDELAYEDEXPANSION 3 | for /f %%p in ('dir /b *.rdp') do ( 4 | set p=%%p 5 | echo start /MAX C:\f2etest-webdriver\webdriver\opennode !p:~4,2! > "opennode!p:~4,2!.bat" 6 | move "opennode!p:~4,2!.bat" "C:\Users\node!p:~4,2!\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\opennode!p:~4,2!.bat" 7 | echo Node inited %%p 8 | ) -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node01.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node01.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node02.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node02.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node03.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node03.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node04.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node04.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node05.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node05.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node06.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node06.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node07.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node07.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node08.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node08.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node09.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node09.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node10.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node10.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node11.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node11.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node12.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node12.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node13.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node13.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node14.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node14.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node15.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node15.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/node16.rdp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/rdp/node16.rdp -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/nodewatch.js: -------------------------------------------------------------------------------- 1 | var fs = require('fs'); 2 | var cp = require('child_process'); 3 | 4 | var mapNodeOffCount = {}; 5 | 6 | console.log('Node watcher started!'); 7 | checkAllNodeAlive(); 8 | 9 | function checkAllNodeAlive(){ 10 | var result = cp.spawnSync('query.exe', ['session']); 11 | var sessionList = result.stdout.toString(); 12 | 13 | var mapOpened = {}; 14 | var arrLines = sessionList.split('\n'); 15 | arrLines.forEach(function(line){ 16 | var match = line.match(/node(\d+)/); 17 | if(match){ 18 | var nodeid = match[1]; 19 | mapOpened[nodeid] = true; 20 | if(/rdp-tcp#/.test(line) === true){ 21 | mapNodeOffCount[nodeid] = 0; 22 | } 23 | else{ 24 | mapNodeOffCount[nodeid] = mapNodeOffCount[nodeid] ? mapNodeOffCount[nodeid] + 1 : 1; 25 | } 26 | } 27 | }); 28 | 29 | var arrFiles = fs.readdirSync('.'); 30 | arrFiles.forEach(function(file){ 31 | var match = file.match(/node(\d+)/); 32 | var nodeid = match && match[1]; 33 | if(nodeid && (!mapOpened[nodeid] || mapNodeOffCount[nodeid] !== undefined && mapNodeOffCount[nodeid] >= 3)){ 34 | mapNodeOffCount[nodeid] = 0; 35 | reOpenNode(nodeid); 36 | } 37 | }); 38 | setTimeout(checkAllNodeAlive, 5000); 39 | } 40 | 41 | function reOpenNode(nodeId){ 42 | var nodeName = 'node' + addZero(nodeId, 2); 43 | var result = cp.execSync('WMIC PROCESS WHERE (name="mstsc.exe" AND CommandLine like "%'+nodeName+'.rdp%") GET processid').toString(); 44 | var match = result.match(/ProcessId\s+(\d+)/i); 45 | if(match){ 46 | cp.execSync('tskill '+match[1]); 47 | console.log('Old mstsc killed!'); 48 | } 49 | cp.exec('start /min "" mstsc '+nodeName+'.rdp'); 50 | console.log(nodeName+' reopen successed!'); 51 | } 52 | 53 | function addZero(str,length){ 54 | return new Array(length - str.length + 1).join("0") + str; 55 | } -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/rdp/openAllNode.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | ping -n 60 127.0.0.1>nul 3 | tskill mstsc 4 | for /R %1 %%p in (*.rdp) do ( 5 | ping -n 30 127.0.0.1>nul 6 | start /min "" mstsc %%p 7 | echo open %%p 8 | ) 9 | ping -n 60 127.0.0.1>nul 10 | node nodewatch.js -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/webdriver/IEDriverServer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/webdriver/IEDriverServer.exe -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/webdriver/IEDriverServer64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/webdriver/IEDriverServer64.exe -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/webdriver/chromedriver.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/webdriver/chromedriver.exe -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/webdriver/opennode.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/webdriver/opennode.bat -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/webdriver/selenium-server-standalone-2.53.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/webdriver/selenium-server-standalone-2.53.1.jar -------------------------------------------------------------------------------- /f2etest-client/f2etest-webdriver/批量设置节点用户.vbs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-client/f2etest-webdriver/批量设置节点用户.vbs -------------------------------------------------------------------------------- /f2etest-docker/guacamole.properties: -------------------------------------------------------------------------------- 1 | guacd-hostname: localhost 2 | guacd-port: 4822 3 | enable-websocket: true 4 | enable-clipboard-integration: true 5 | 6 | auth-provider: net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider 7 | noauth-config: /etc/guacamole/noauth-config.xml 8 | 9 | # auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider 10 | # basic-user-mapping: /etc/guacamole/user-mapping.xml -------------------------------------------------------------------------------- /f2etest-docker/nginx.conf: -------------------------------------------------------------------------------- 1 | user nginx; 2 | worker_processes 1; 3 | 4 | error_log /var/log/nginx/error.log warn; 5 | pid /var/run/nginx.pid; 6 | 7 | 8 | events { 9 | worker_connections 1024; 10 | } 11 | 12 | 13 | http { 14 | include /etc/nginx/mime.types; 15 | default_type application/octet-stream; 16 | 17 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 18 | '$status $body_bytes_sent "$http_referer" ' 19 | '"$http_user_agent" "$http_x_forwarded_for"'; 20 | 21 | access_log /var/log/nginx/access.log main; 22 | 23 | sendfile on; 24 | 25 | keepalive_timeout 65; 26 | 27 | server { 28 | location / { 29 | proxy_pass http://127.0.0.1:3000; 30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 31 | proxy_set_header X-Forwarded-Proto $scheme; 32 | proxy_set_header Host $host; 33 | } 34 | 35 | error_page 500 502 503 504 /50x.html; 36 | location = /50x.html { 37 | root /usr/share/nginx/html; 38 | } 39 | 40 | location /guacamole { 41 | proxy_pass http://127.0.0.1:8080; 42 | proxy_http_version 1.1; 43 | proxy_set_header Upgrade $http_upgrade; 44 | proxy_set_header Connection "Upgrade"; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /f2etest-docker/nginx.repo: -------------------------------------------------------------------------------- 1 | [nginx-stable] 2 | name=nginx stable repo 3 | baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 4 | gpgcheck=1 5 | enabled=1 6 | gpgkey=https://nginx.org/keys/nginx_signing.key 7 | 8 | [nginx-mainline] 9 | name=nginx mainline repo 10 | baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ 11 | gpgcheck=1 12 | enabled=0 13 | gpgkey=https://nginx.org/keys/nginx_signing.key -------------------------------------------------------------------------------- /f2etest-docker/noauth-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /f2etest-docker/setup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mysql < /home/f2etest-web/f2etest.sql 3 | sleep 2 4 | nginx 5 | sleep 2 6 | pm2 start app.js --name f2etest-web 7 | 8 | -------------------------------------------------------------------------------- /f2etest-docker/tomcat8: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # description: Tomcat Start Stop Restart 3 | # processname: tomcat 4 | # chkconfig: 234 20 80 5 | JAVA_HOME=/usr/java/jdk1.8.0_141 6 | export JAVA_HOME 7 | PATH=$JAVA_HOME/bin:$PATH 8 | export PATH 9 | CATALINA_HOME=/usr/local/tomcat8 10 | 11 | case $1 in 12 | start) 13 | sh $CATALINA_HOME/bin/startup.sh 14 | ;; 15 | stop) 16 | sh $CATALINA_HOME/bin/shutdown.sh 17 | ;; 18 | restart) 19 | sh $CATALINA_HOME/bin/shutdown.sh 20 | sh $CATALINA_HOME/bin/startup.sh 21 | ;; 22 | esac 23 | exit 0 -------------------------------------------------------------------------------- /f2etest-guacamole/README.md: -------------------------------------------------------------------------------- 1 | guacamole 2 | ====================== 3 | 4 | guacamole这一款支持HTML5的开源远程桌面解决方案,包括两部分: 5 | 6 | 1. guacamole-server: 是个网关,支持rdp,vnc等协议 7 | 2. guacamole-client:是一个基于JAVA开发的客户端 8 | 9 | f2etest-guacamole版本基于官方guacamole-client进行如下变更和加强: 10 | 11 | 1. 去掉了登录限制,允许未登录也能调用 12 | 2. 增加了扩展参数,允许传递username, password, program等参数,以便对接F2etest 13 | 3. 打开了底部输入框,并且完美优化了输入工作模式 14 | 4. 支持剪切板双向直通,完美打通本地和服务器之间的剪切板交换 15 | 5. 和F2etest无缝对接,可以显示当前应用的图标和标题 16 | 17 | 安装请参考:[Install.md](./Install.md) -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-0.9.3.war: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-0.9.3.war -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-ldap/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-ldap/doc/examples/exampleConfigGroup.ldif: -------------------------------------------------------------------------------- 1 | 2 | dn: cn=Example Config,dc=guac-dev,dc=org 3 | objectClass: guacConfigGroup 4 | objectClass: groupOfNames 5 | cn: Example Config 6 | guacConfigProtocol: vnc 7 | guacConfigParameter: hostname=localhost 8 | guacConfigParameter: port=5900 9 | guacConfigParameter: password=secret 10 | member: cn=user1,dc=example,dc=com 11 | member: cn=user2,dc=example,dc=com 12 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-ldap/schema/guacConfigGroup.ldif: -------------------------------------------------------------------------------- 1 | dn: cn=guacConfigGroup,cn=schema,cn=config 2 | objectClass: olcSchemaConfig 3 | cn: guacConfigGroup 4 | olcAttributeTypes: {0}( 1.3.6.1.4.1.38971.1.1.1 NAME 'guacConfigProtocol' SYNTAX 1.3.6.1.4.1.1466 5 | .115.121.1.15 ) 6 | olcAttributeTypes: {1}( 1.3.6.1.4.1.38971.1.1.2 NAME 'guacConfigParameter' SYNTAX 1.3.6.1.4.1.146 7 | 6.115.121.1.15 ) 8 | olcObjectClasses: {0}( 1.3.6.1.4.1.38971.1.2.1 NAME 'guacConfigGroup' DESC 'Guacamole config 9 | uration group' SUP groupOfNames MUST guacConfigProtocol MAY guacConfigParameter ) 10 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-ldap/schema/guacConfigGroup.schema: -------------------------------------------------------------------------------- 1 | 2 | attributetype ( 1.3.6.1.4.1.38971.1.1.1 NAME 'guacConfigProtocol' 3 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) 4 | 5 | attributetype ( 1.3.6.1.4.1.38971.1.1.2 NAME 'guacConfigParameter' 6 | SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) 7 | 8 | objectClass ( 1.3.6.1.4.1.38971.1.2.1 NAME 'guacConfigGroup' 9 | DESC 'Guacamole configuration group' 10 | SUP groupOfNames 11 | MUST protocol 12 | MAY parameter ) 13 | 14 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/doc/example/settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | guacamole-mybatis 7 | 8 | SCHEMA 9 | DATABASE 10 | USER 11 | PASS 12 | 13 | 14 | 15 | 16 | 17 | 18 | guacamole-mybatis 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Base classes which support the MySQL authentication provider, including 25 | * the authentication provider itself. 26 | */ 27 | package net.sourceforge.guacamole.net.auth.mysql; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/properties/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Properties which control the configuration of the MySQL authentication 25 | * provider. 26 | */ 27 | package net.sourceforge.guacamole.net.auth.mysql.properties; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/service/SaltService.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package net.sourceforge.guacamole.net.auth.mysql.service; 24 | 25 | /** 26 | * A service to generate password salts. 27 | * @author James Muehlner 28 | */ 29 | public interface SaltService { 30 | /** 31 | * Generates a new String that can be used as a password salt. 32 | * @return a new salt for password encryption. 33 | */ 34 | public byte[] generateSalt(); 35 | } 36 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-mysql/src/main/java/net/sourceforge/guacamole/net/auth/mysql/service/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Service classes which help fill the needs of the MySQL authentication 25 | * provider. 26 | */ 27 | package net.sourceforge.guacamole.net.auth.mysql.service; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-noauth/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-noauth/doc/example/noauth-config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/extensions/guacamole-auth-noauth/src/main/assembly/dist.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | dist 7 | ${project.artifactId}-${project.version} 8 | 9 | 10 | 11 | tar.gz 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | / 20 | doc 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | /lib 31 | runtime 32 | false 33 | true 34 | true 35 | 36 | 37 | 38 | 39 | org.glyptodon.guacamole:guacamole-common 40 | 41 | 42 | org.glyptodon.guacamole:guacamole-ext 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common-js/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common-js/doc/guacamole-osk.dtd: -------------------------------------------------------------------------------- 1 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common-js/src/main/webapp/common/license.js: -------------------------------------------------------------------------------- 1 | /*! (C) 2014 Glyptodon LLC - glyptodon.org/MIT-LICENSE */ 2 | 3 | /* 4 | * Copyright (C) 2013 Glyptodon LLC 5 | * 6 | * Permission is hereby granted, free of charge, to any person obtaining a copy 7 | * of this software and associated documentation files (the "Software"), to deal 8 | * in the Software without restriction, including without limitation the rights 9 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | * copies of the Software, and to permit persons to whom the Software is 11 | * furnished to do so, subject to the following conditions: 12 | * 13 | * The above copyright notice and this permission notice shall be included in 14 | * all copies or substantial portions of the Software. 15 | * 16 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | * THE SOFTWARE. 23 | */ 24 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common-js/src/main/webapp/modules/Version.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | var Guacamole = Guacamole || {}; 24 | 25 | /** 26 | * The unique ID of this version of the Guacamole JavaScript API. This ID will 27 | * be the version string of the guacamole-common-js Maven project, and can be 28 | * used in downstream applications as a sanity check that the proper version 29 | * of the APIs is being used (in case an older version is cached, for example). 30 | * 31 | * @type String 32 | */ 33 | Guacamole.API_VERSION = "0.9.3"; 34 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common-js/static.xml: -------------------------------------------------------------------------------- 1 | 2 | guacamole-common-js 3 | guacamole-common-js 4 | 5 | zip 6 | 7 | 8 | 9 | src/main/webapp/modules/ 10 | 11 | *.js 12 | 13 | modules/ 14 | 15 | 16 | target/${project.name}-${project.version}/ 17 | 18 | *.js 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/ChangeLog: -------------------------------------------------------------------------------- 1 | 2012-10-24 Michael Jumper 2 | 3 | * Implement audio/video/size preamble in handshake 4 | 5 | 2012-10-16 Michael Jumper 6 | 7 | * Ignore data after tunnel UUID (part of fix for ticket #201) 8 | 9 | 2012-10-03 Michael Jumper 10 | 11 | * Fix NPE in handshake if end-of-stream encountered (ticket #195) 12 | 13 | 2012-08-09 Michael Jumper 14 | 15 | * Improve documentation 16 | 17 | 2012-07-24 Michael Jumper 18 | 19 | * Fix Unicode bug 20 | 21 | 2012-05-04 Michael Jumper 22 | 23 | * Improved logging and exception handling 24 | * Removed minor dependency on Apache Commons 25 | * Improved API usability 26 | 27 | 2011-12-11 Michael Jumper 28 | 29 | * Implemented improved instruction format 30 | * Fixed failed connections when using Konqueror 31 | * Relicensed as Mozilla/LGPL/GPL 32 | 33 | 2011-07-13 Michael Jumper 34 | 35 | * Fixed "no element found" errors 36 | * Added timeouts 37 | * Multiple tunnel support 38 | * Better error handling 39 | * Added JavaDoc 40 | * Added logging 41 | 42 | 2011-03-02 Michael Jumper 43 | 44 | * Initial release 45 | 46 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/src/main/java/org/glyptodon/guacamole/io/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * All classes relating directly to data input or output. 25 | */ 26 | package org.glyptodon.guacamole.io; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/src/main/java/org/glyptodon/guacamole/net/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes which apply to network-specific concepts, such as low-level sockets 25 | * and tunnels. 26 | */ 27 | package org.glyptodon.guacamole.net; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/src/main/java/org/glyptodon/guacamole/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * All classes which apply generally across the Guacamole web application 25 | * and all other web applications which use the API provided by the 26 | * Guacamole project. 27 | */ 28 | package org.glyptodon.guacamole; 29 | 30 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/src/main/java/org/glyptodon/guacamole/protocol/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes relating directly to the Guacamole protocol. 25 | */ 26 | package org.glyptodon.guacamole.protocol; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-common/src/main/java/org/glyptodon/guacamole/servlet/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes which build upon the Java Servlet API, providing an HTTP-based 25 | * tunnel and session management. 26 | */ 27 | package org.glyptodon.guacamole.servlet; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/ChangeLog: -------------------------------------------------------------------------------- 1 | 2012-10-15 Michael Jumper 2 | 3 | * Updated to latest guacamole-common 4 | 5 | 2012-08-11 Michael Jumper 6 | 7 | * Improved documentation 8 | 9 | 2012-05-04 Michael Jumper 10 | 11 | * Renamed to guacamole-ext 12 | * Generic HTTP-based Credentials object 13 | * Added support for listeners and hooks 14 | 15 | 2011-12-11 Michael Jumper 16 | 17 | * Initial release 18 | 19 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/auth/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes which can be used to extend or replace the authentication 25 | * functionality of the Guacamole web application. 26 | */ 27 | package org.glyptodon.guacamole.net.auth; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/auth/permission/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes which describe the various permissions a Guacamole user 25 | * can be granted. 26 | */ 27 | package org.glyptodon.guacamole.net.auth.permission; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/auth/simple/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides a basic AuthenticationProvider base class that can be used to create 25 | * simple AuthenticationProviders in the same way allowed by the old 26 | * authentication API. 27 | */ 28 | package org.glyptodon.guacamole.net.auth.simple; 29 | 30 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/event/TunnelEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.net.event; 24 | 25 | import org.glyptodon.guacamole.net.GuacamoleTunnel; 26 | 27 | /** 28 | * Abstract basis for events associated with tunnels. 29 | * 30 | * @author Michael Jumper 31 | */ 32 | public interface TunnelEvent { 33 | 34 | /** 35 | * Returns the tunnel associated with this event, if any. 36 | * 37 | * @return The tunnel associated with this event, if any, or null if no 38 | * tunnel is associated with this event. 39 | */ 40 | GuacamoleTunnel getTunnel(); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/event/listener/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for hooking into various events that take place as 25 | * users log into and use the Guacamole web application. These event 26 | * hooks can be used to take action upon occurrence of an event and, 27 | * in some cases, prevent the web application from allowing the 28 | * event to continue for the user that triggered it. 29 | */ 30 | package org.glyptodon.guacamole.net.event.listener; 31 | 32 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/net/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for storing information about events that are 25 | * triggered when users log into and use the Guacamole web application. 26 | * These event classes are most useful when used with hooks implemented 27 | * using listener classes. 28 | * 29 | * @see org.glyptodon.guacamole.net.event.listener 30 | */ 31 | package org.glyptodon.guacamole.net.event; 32 | 33 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/properties/FileGuacamoleProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.properties; 24 | 25 | import java.io.File; 26 | import org.glyptodon.guacamole.GuacamoleException; 27 | 28 | /** 29 | * A GuacamoleProperty whose value is a filename. 30 | * 31 | * @author Michael Jumper 32 | */ 33 | public abstract class FileGuacamoleProperty implements GuacamoleProperty { 34 | 35 | @Override 36 | public File parseValue(String value) throws GuacamoleException { 37 | 38 | // If no property provided, return null. 39 | if (value == null) 40 | return null; 41 | 42 | return new File(value); 43 | 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/properties/StringGuacamoleProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.properties; 24 | 25 | import org.glyptodon.guacamole.GuacamoleException; 26 | 27 | /** 28 | * A GuacamoleProperty whose value is a simple string. 29 | * 30 | * @author Michael Jumper 31 | */ 32 | public abstract class StringGuacamoleProperty implements GuacamoleProperty { 33 | 34 | @Override 35 | public String parseValue(String value) throws GuacamoleException { 36 | return value; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole-ext/src/main/java/org/glyptodon/guacamole/properties/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for reading properties from the web-application-wide 25 | * guacamole.properties file. 26 | */ 27 | package org.glyptodon.guacamole.properties; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2013 Glyptodon LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/doc/example/guacamole.properties: -------------------------------------------------------------------------------- 1 | 2 | # Hostname and port of guacamole proxy 3 | guacd-hostname: localhost 4 | guacd-port: 4822 5 | 6 | # Auth provider class (authenticates user/pass combination, needed if using the provided login screen) 7 | auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider 8 | basic-user-mapping: /path/to/user-mapping.xml 9 | 10 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/doc/example/user-mapping.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | vnc 6 | localhost 7 | 5900 8 | VNCPASS 9 | 10 | 11 | 13 | 17 | 18 | 19 | 20 | vnc 21 | localhost 22 | 5901 23 | VNCPASS 24 | 25 | 26 | 27 | 28 | vnc 29 | otherhost 30 | 5900 31 | VNCPASS 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/assembly/dist.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | dist 7 | ${project.artifactId}-${project.version} 8 | 9 | 10 | 11 | tar.gz 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | / 20 | doc 21 | 22 | 23 | 24 | 25 | 27 | 28 | 29 | 30 | /lib 31 | runtime 32 | false 33 | true 34 | true 35 | 36 | 37 | 38 | 39 | org.glyptodon.guacamole:guacamole-common 40 | 41 | 42 | org.glyptodon.guacamole:guacamole-ext 43 | 44 | 45 | 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/auth/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes which can be used to extend or replace the authentication 25 | * functionality of the Guacamole web application. 26 | */ 27 | package org.glyptodon.guacamole.net.auth; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/auth/permission/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes which describe the various permissions a Guacamole user 25 | * can be granted. 26 | */ 27 | package org.glyptodon.guacamole.net.auth.permission; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/auth/simple/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides a basic AuthenticationProvider base class that can be used to create 25 | * simple AuthenticationProviders in the same way allowed by the old 26 | * authentication API. 27 | */ 28 | package org.glyptodon.guacamole.net.auth.simple; 29 | 30 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/auth/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes which drive the default, basic authentication of the Guacamole 25 | * web application. 26 | */ 27 | package org.glyptodon.guacamole.net.basic.auth; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/connectiongroups/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Servlets dedicated to CRUD operations related to ConnectionGroups. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.crud.connectiongroups; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/connections/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Servlets dedicated to CRUD operations related to Connections. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.crud.connections; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/permissions/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Servlets dedicated to CRUD operations related to Permissions. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.crud.permissions; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/protocols/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Servlets dedicated to CRUD operations related to protocols. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.crud.protocols; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/crud/users/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Servlets dedicated to CRUD operations related to Users. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.crud.users; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes used by the Guacamole web application to broadcast events. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.event; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes specific to the general-purpose web application implemented by 25 | * the Guacamole project using the Guacamole APIs. 26 | */ 27 | package org.glyptodon.guacamole.net.basic; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/properties/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes related to the properties which the Guacamole web application 25 | * (and stock parts of it) read from guacamole.properties. 26 | */ 27 | package org.glyptodon.guacamole.net.basic.properties; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/jetty/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Jetty WebSocket tunnel implementation. The classes here require at least 25 | * Jetty 8, and may change significantly as there is no common WebSocket 26 | * API for Java yet. 27 | */ 28 | package org.glyptodon.guacamole.net.basic.websocket.jetty; 29 | 30 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/websocket/tomcat/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Tomcat WebSocket tunnel implementation. The classes here require at least 25 | * Tomcat 7.0, and may change significantly as there is no common WebSocket 26 | * API for Java yet. 27 | */ 28 | package org.glyptodon.guacamole.net.basic.websocket.tomcat; 29 | 30 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/xml/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes driving the SAX-based XML parser used by the Guacamole web 25 | * application. 26 | */ 27 | package org.glyptodon.guacamole.net.basic.xml; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/xml/protocol/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes related to parsing XML files which describe the parameters of a 25 | * protocol. 26 | */ 27 | package org.glyptodon.guacamole.net.basic.xml.protocol; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/basic/xml/user_mapping/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Classes related to parsing the user-mapping.xml file. 25 | */ 26 | package org.glyptodon.guacamole.net.basic.xml.user_mapping; 27 | 28 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/event/TunnelEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.net.event; 24 | 25 | import org.glyptodon.guacamole.net.GuacamoleTunnel; 26 | 27 | /** 28 | * Abstract basis for events associated with tunnels. 29 | * 30 | * @author Michael Jumper 31 | */ 32 | public interface TunnelEvent { 33 | 34 | /** 35 | * Returns the tunnel associated with this event, if any. 36 | * 37 | * @return The tunnel associated with this event, if any, or null if no 38 | * tunnel is associated with this event. 39 | */ 40 | GuacamoleTunnel getTunnel(); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/event/UserEvent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.net.event; 24 | 25 | import org.glyptodon.guacamole.net.auth.UserContext; 26 | 27 | /** 28 | * Abstract basis for events which may have an associated UserContext when 29 | * triggered. 30 | * 31 | * @author Michael Jumper 32 | */ 33 | public interface UserEvent { 34 | 35 | /** 36 | * Returns the current UserContext of the user triggering the event, if any. 37 | * 38 | * @return The current UserContext of the user triggering the event, if 39 | * any, or null if no UserContext is associated with the event. 40 | */ 41 | UserContext getUserContext(); 42 | 43 | } 44 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/event/listener/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for hooking into various events that take place as 25 | * users log into and use the Guacamole web application. These event 26 | * hooks can be used to take action upon occurrence of an event and, 27 | * in some cases, prevent the web application from allowing the 28 | * event to continue for the user that triggered it. 29 | */ 30 | package org.glyptodon.guacamole.net.event.listener; 31 | 32 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/net/event/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for storing information about events that are 25 | * triggered when users log into and use the Guacamole web application. 26 | * These event classes are most useful when used with hooks implemented 27 | * using listener classes. 28 | * 29 | * @see org.glyptodon.guacamole.net.event.listener 30 | */ 31 | package org.glyptodon.guacamole.net.event; 32 | 33 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/properties/StringGuacamoleProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | package org.glyptodon.guacamole.properties; 24 | 25 | import org.glyptodon.guacamole.GuacamoleException; 26 | 27 | /** 28 | * A GuacamoleProperty whose value is a simple string. 29 | * 30 | * @author Michael Jumper 31 | */ 32 | public abstract class StringGuacamoleProperty implements GuacamoleProperty { 33 | 34 | @Override 35 | public String parseValue(String value) throws GuacamoleException { 36 | return value; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/java/org/glyptodon/guacamole/properties/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2013 Glyptodon LLC 3 | * 4 | * Permission is hereby granted, free of charge, to any person obtaining a copy 5 | * of this software and associated documentation files (the "Software"), to deal 6 | * in the Software without restriction, including without limitation the rights 7 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | * copies of the Software, and to permit persons to whom the Software is 9 | * furnished to do so, subject to the following conditions: 10 | * 11 | * The above copyright notice and this permission notice shall be included in 12 | * all copies or substantial portions of the Software. 13 | * 14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | * THE SOFTWARE. 21 | */ 22 | 23 | /** 24 | * Provides classes for reading properties from the web-application-wide 25 | * guacamole.properties file. 26 | */ 27 | package org.glyptodon.guacamole.properties; 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/resources/net/sourceforge/guacamole/net/protocols/ssh.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/resources/net/sourceforge/guacamole/net/protocols/telnet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/resources/net/sourceforge/guacamole/net/protocols/vnc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-back.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-close.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-config.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-delete.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-first-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-first-page.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-group-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-group-add.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-last-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-last-page.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-logout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-logout.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-monitor-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-monitor-add.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-next-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-next-page.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-prev-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-prev-page.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-user-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/action-icons/guac-user-add.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-d.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-l.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-r.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-u.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/arrows/arrows-u.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/group-icons/guac-closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/group-icons/guac-closed.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/group-icons/guac-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/group-icons/guac-open.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guac-mono-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guac-mono-192.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-144.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-24.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/guacamole-logo-64.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/blank.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/blank.cur -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/blank.gif -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/dot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/mouse/dot.gif -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/noguacamole-logo-24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/noguacamole-logo-24.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/progress.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-monitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-monitor.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-plug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-plug.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/protocol-icons/guac-text.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/tablet-keys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/tablet-keys.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/touchpad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/touchpad.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/touchscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/touchscreen.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/zoom-in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/zoom-in.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/zoom-out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/settings/zoom-out.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/user-icons/guac-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/images/user-icons/guac-user.png -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/scripts/lib/blob/LICENSE.md: -------------------------------------------------------------------------------- 1 | This software is licensed under the MIT/X11 license. 2 | 3 | MIT/X11 license 4 | --------------- 5 | 6 | Copyright © 2011 [Eli Grey][1]. 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | 29 | 30 | [1]: http://eligrey.com -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/guacamole/src/main/webapp/scripts/lib/filesaver/LICENSE.md: -------------------------------------------------------------------------------- 1 | This software is licensed under the MIT/X11 license. 2 | 3 | MIT/X11 license 4 | --------------- 5 | 6 | Copyright © 2011 [Eli Grey][1]. 7 | 8 | Permission is hereby granted, free of charge, to any person 9 | obtaining a copy of this software and associated documentation 10 | files (the "Software"), to deal in the Software without 11 | restriction, including without limitation the rights to use, 12 | copy, modify, merge, publish, distribute, sublicense, and/or sell 13 | copies of the Software, and to permit persons to whom the 14 | Software is furnished to do so, subject to the following 15 | conditions: 16 | 17 | The above copyright notice and this permission notice shall be 18 | included in all copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 22 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 24 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 25 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 26 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | 29 | 30 | [1]: http://eligrey.com -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-client-0.9.3/project-assembly.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | project 8 | 9 | tar.gz 10 | 11 | 12 | 13 | 14 | ${project.basedir} 15 | / 16 | true 17 | 18 | **/*.log 19 | **/${project.build.directory}/** 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /f2etest-guacamole/guacamole-server-0.9.3.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-guacamole/guacamole-server-0.9.3.tar.gz -------------------------------------------------------------------------------- /f2etest-local/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | # Apply for all files 8 | [*] 9 | 10 | charset = utf-8 11 | 12 | indent_style = space 13 | indent_size = 4 14 | 15 | end_of_line = lf 16 | insert_final_newline = true 17 | trim_trailing_whitespace = true 18 | -------------------------------------------------------------------------------- /f2etest-local/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /f2etest-local/.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | -------------------------------------------------------------------------------- /f2etest-local/lib/utils.js: -------------------------------------------------------------------------------- 1 | // extend object 2 | function extend(target) { 3 | for (var i = 1; i < arguments.length; i++) { 4 | var source = arguments[i], 5 | keys = Object.keys(source) 6 | 7 | for (var j = 0; j < keys.length; j++) { 8 | var name = keys[j] 9 | target[name] = source[name] 10 | } 11 | } 12 | 13 | return target 14 | } 15 | 16 | // check shExp match 17 | function shExpMatch(text, exp){ 18 | exp = exp.replace(/\.|\*|\?/g, function(c){ 19 | return { '.': '\\.', '*': '.*?', '?': '.' }[c]; 20 | }); 21 | try{ 22 | return new RegExp('^'+exp+'$').test(text); 23 | } 24 | catch(e){ 25 | return false; 26 | } 27 | } 28 | 29 | module.exports = { 30 | extend: extend, 31 | shExpMatch: shExpMatch 32 | }; -------------------------------------------------------------------------------- /f2etest-local/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "f2etest-local", 3 | "version": "0.9.6", 4 | "description": "Local proxy for F2etest", 5 | "main": "./index", 6 | "dependencies": { 7 | "colors": "1.1.2", 8 | "commander": "2.9.0", 9 | "request": "2.65.0" 10 | }, 11 | "devDependencies": {}, 12 | "bin": { 13 | "f2etest-local": "./bin/f2etest-local" 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git@github.com:alibaba/f2etest.git" 18 | }, 19 | "bugs": { 20 | "url": "https://github.com/alibaba/f2etest/issues" 21 | }, 22 | "keywords": [ 23 | "f2etest", 24 | "local", 25 | "proxy" 26 | ], 27 | "author": "Yanis Wang", 28 | "license": "MIT" 29 | } 30 | -------------------------------------------------------------------------------- /f2etest-web/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | mapHosts.json -------------------------------------------------------------------------------- /f2etest-web/conf/country.json: -------------------------------------------------------------------------------- 1 | [ 2 | ] -------------------------------------------------------------------------------- /f2etest-web/conf/server.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "f2etest-ie6", 4 | "ip": "10.0.0.1", 5 | "remoteApp": false 6 | }, 7 | { 8 | "id": "f2etest-ie7", 9 | "ip": "10.0.0.2", 10 | "remoteApp": false 11 | }, 12 | { 13 | "id": "f2etest-ie8", 14 | "ip": "10.0.0.3", 15 | "remoteApp": true 16 | }, 17 | { 18 | "id": "f2etest-ie9", 19 | "ip": "10.0.0.4", 20 | "remoteApp": true 21 | }, 22 | { 23 | "id": "f2etest-ie10", 24 | "ip": "10.0.0.5", 25 | "remoteApp": true 26 | }, 27 | { 28 | "id": "f2etest-ie11", 29 | "ip": "10.0.0.6", 30 | "remoteApp": true 31 | } 32 | ] -------------------------------------------------------------------------------- /f2etest-web/conf/site.json: -------------------------------------------------------------------------------- 1 | { 2 | "port": 3000, 3 | "name": "F2etest", 4 | "about": "浏览器云测平台", 5 | "icon": "/favicon.ico", 6 | "dbHost": "127.0.0.1", 7 | "dbUser": "root", 8 | "dbPass": "", 9 | "dbPort": 3306, 10 | "dbTable": "f2etest", 11 | "clientApiKey":"f2etest", 12 | "guacamoleApi": "http://192.168.1.101/guacamole/client.xhtml", 13 | "footer": "", 14 | "wdEnabled": false, 15 | "wdCheckNodesInterval": 5000, 16 | "wdCheckNodesParallelLimit": 16 17 | } 18 | -------------------------------------------------------------------------------- /f2etest-web/control/api.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/api', function(req, res) { 3 | var viewData = req.viewData; 4 | viewData.host = req.headers['host']; 5 | var user = req.session.user; 6 | viewData.userid = user.userid; 7 | viewData.apiKey = user.apiKey; 8 | viewData.userIp = (req.ip || '').replace(/^::ffff:/,''); 9 | viewData.navTab = 'browser'; 10 | viewData.navPage = 'api'; 11 | res.render('api', viewData); 12 | }); 13 | }; -------------------------------------------------------------------------------- /f2etest-web/control/applog.js: -------------------------------------------------------------------------------- 1 | var pool =require('../lib/db.js'); 2 | 3 | module.exports = function(app, config) { 4 | var siteInfo = config.siteInfo; 5 | app.get('/applog', function(req, res) { 6 | var query = req.query; 7 | var userid = query['userid'] || ''; 8 | var appid = query['appid'] || ''; 9 | var isweb = query['isweb'] || '1'; 10 | if(pool && userid && appid && isweb){ 11 | pool.query('select count(0) count from appUsers where UserId = ?', [userid], function(err, rows){ 12 | if(!err && rows[0].count === 1){ 13 | var objInsert = { 14 | UserId: userid, 15 | appId: appid, 16 | isWeb: isweb 17 | }; 18 | pool.query('insert into appLogs set ?', objInsert); 19 | res.end('ok'); 20 | } 21 | else{ 22 | res.end('error'); 23 | } 24 | }); 25 | } 26 | else{ 27 | res.end('error'); 28 | } 29 | }); 30 | } -------------------------------------------------------------------------------- /f2etest-web/control/autotest.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(app, config) { 3 | 4 | app.get('/autotest', function(req, res){ 5 | var viewData = req.viewData; 6 | viewData.host = req.headers['host']; 7 | viewData.hostname = req.hostname; 8 | var user = req.session.user; 9 | viewData.userid = user.userid; 10 | viewData.apiKey = user.apiKey; 11 | viewData.navTab = 'autotest'; 12 | viewData.navPage = ''; 13 | res.render('autotest', viewData); 14 | }); 15 | 16 | } -------------------------------------------------------------------------------- /f2etest-web/control/changelog.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/changelog', function(req, res) { 3 | var viewData = req.viewData; 4 | viewData.navTab = ''; 5 | viewData.navPage = ''; 6 | res.render('changelog', req.viewData); 7 | }); 8 | } -------------------------------------------------------------------------------- /f2etest-web/control/country.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | 3 | var arrCountryProxy = config.arrCountryProxy; 4 | var mapCountryProxy = {}; 5 | arrCountryProxy.forEach(function(country){ 6 | mapCountryProxy[country.name] = country.proxy; 7 | }); 8 | var countryProxyWhiteList = config.siteInfo.countryProxyWhiteList; 9 | 10 | // pac接口,返回国家代理地址 11 | app.all('/getCountryProxy.pac', function(req, res) { 12 | var query = req.query; 13 | var body = req.body; 14 | var name = query['name'] || ''; 15 | var proxy = mapCountryProxy[name]; 16 | if(proxy){ 17 | res.writeHead(200, { 'Content-Type': 'text/plain' }); 18 | var pacContent; 19 | if(countryProxyWhiteList){ 20 | pacContent = 'function FindProxyForURL(url, host){if('+countryProxyWhiteList+'.test(host))return "PROXY '+proxy+'";\r\nreturn "PROXY 127.0.0.1:1111"}'; 21 | } 22 | else{ 23 | pacContent = 'function FindProxyForURL(url, host){return "PROXY '+proxy+'";}';; 24 | } 25 | res.end(pacContent); 26 | } 27 | else{ 28 | res.end('Country name search failed!'); 29 | } 30 | }); 31 | }; -------------------------------------------------------------------------------- /f2etest-web/control/getAllBrowsers.js: -------------------------------------------------------------------------------- 1 | var crypto = require('crypto'); 2 | var async = require('async'); 3 | var request = require('request'); 4 | var pool =require('../lib/db.js'); 5 | 6 | module.exports = function(app, config) { 7 | app.get('/getAllBrowsers', function(req, res) { 8 | var query = req.query; 9 | var callback = query['callback'] || ''; 10 | 11 | var arrBrowsers = []; 12 | var host = req.headers['host']; 13 | config.arrAppList.forEach(function(appInfo){ 14 | arrBrowsers.push({ 15 | id: appInfo.id, 16 | name: appInfo.name, 17 | shortname: appInfo.shortname, 18 | icon: '//'+host+'/imgs/app/'+appInfo.id+'.png' 19 | }); 20 | }); 21 | 22 | var result = { 23 | remoteInited: req.viewData.remoteInited, 24 | arrBrowsers: arrBrowsers 25 | }; 26 | 27 | result = JSON.stringify(result); 28 | 29 | if(callback){ 30 | res.type('js'); 31 | result = callback+'('+result+');'; 32 | } 33 | else{ 34 | res.type('json'); 35 | } 36 | 37 | res.end(result); 38 | }); 39 | }; -------------------------------------------------------------------------------- /f2etest-web/control/help.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/help', function(req, res) { 3 | var viewData = req.viewData; 4 | viewData.navTab = 'browser'; 5 | viewData.navPage = 'help'; 6 | res.render('help', req.viewData); 7 | }); 8 | } -------------------------------------------------------------------------------- /f2etest-web/control/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | var indexAppList = []; 3 | config.arrAppList.forEach(function(appInfo){ 4 | indexAppList.push({ 5 | id: appInfo.id, 6 | name: appInfo.name, 7 | icon: appInfo.icon 8 | }); 9 | }); 10 | app.get('/', function(req, res){ 11 | var viewData = req.viewData; 12 | viewData.appList = indexAppList; 13 | viewData.counryList = config.arrCountryProxy; 14 | viewData.host = req.headers['host']; 15 | viewData.navTab = 'browser'; 16 | viewData.navPage = ''; 17 | res.render('index', viewData); 18 | }); 19 | } -------------------------------------------------------------------------------- /f2etest-web/control/initUser.js: -------------------------------------------------------------------------------- 1 | var crypto = require('crypto'); 2 | var async = require('async'); 3 | var pool =require('../lib/db.js'); 4 | var initUser = require('../lib/initUser.js') 5 | 6 | module.exports = function(app, config) { 7 | app.get('/initUser', function(req, res) { 8 | var query = req.query; 9 | var callback = query['callback'] || ''; 10 | 11 | if(callback){ 12 | res.type('js'); 13 | } 14 | else{ 15 | res.type('json'); 16 | } 17 | 18 | var user = req.session.user; 19 | var userid = user.userid; 20 | var result = {}; 21 | if(!user.remotePassword){ 22 | initUser(userid, function(errorMessage, remotePassword){ 23 | var result = {}; 24 | if(errorMessage){ 25 | result.error = errorMessage; 26 | } else { 27 | user.remotePassword = remotePassword; 28 | result.message = 'All account initialized.' 29 | } 30 | result = JSON.stringify(result); 31 | 32 | if(callback){ 33 | result = callback+'('+result+');'; 34 | } 35 | 36 | res.end(result); 37 | }) 38 | } 39 | else{ 40 | result.error = 'Current user already initialized.'; 41 | 42 | result = JSON.stringify(result); 43 | if(callback){ 44 | result = callback+'('+result+');'; 45 | } 46 | 47 | res.end(result); 48 | } 49 | }); 50 | }; -------------------------------------------------------------------------------- /f2etest-web/control/install.bat.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | var arrServerList = config.arrServerList; 3 | app.get('/install.bat', function(req, res) { 4 | var user = req.session.user; 5 | var userid = user.userid; 6 | var remotePassword = user.remotePassword; 7 | res.attachment('install.bat'); 8 | var arrContent = []; 9 | arrServerList.forEach(function(server){ 10 | arrContent.push('cmdkey /generic:'+server.ip+' /user:'+userid+' /pass:'+remotePassword); 11 | }); 12 | res.end(arrContent.join('\r\n')); 13 | }); 14 | } -------------------------------------------------------------------------------- /f2etest-web/control/install.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/install', function(req, res) { 3 | var viewData = req.viewData; 4 | var user = req.session.user; 5 | viewData.remotePassword = user.remotePassword; 6 | viewData.apiKey = user.apiKey; 7 | viewData.host = req.headers['host']; 8 | viewData.navTab = 'browser'; 9 | viewData.navPage = 'install'; 10 | res.render('install', viewData); 11 | }); 12 | } -------------------------------------------------------------------------------- /f2etest-web/control/karma.conf.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/karma.conf.js', function(req, res) { 3 | var user = req.session.user; 4 | var userid = user.userid; 5 | var viewData = req.viewData; 6 | viewData.apiKey = user.apiKey; 7 | viewData.host = req.headers['host']; 8 | app.render('karma_conf',viewData, function(err, content){ 9 | res.attachment('karma.conf.js').end(content); 10 | }); 11 | }); 12 | } -------------------------------------------------------------------------------- /f2etest-web/control/local.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/local', function(req, res) { 3 | var viewData = req.viewData; 4 | var user = req.session.user; 5 | viewData.apiKey = user.apiKey; 6 | viewData.host = req.headers['host']; 7 | viewData.navTab = 'browser'; 8 | viewData.navPage = 'local'; 9 | res.render('local', viewData); 10 | }); 11 | } -------------------------------------------------------------------------------- /f2etest-web/control/rdfeed.js: -------------------------------------------------------------------------------- 1 | var ejs = require('ejs'); 2 | 3 | module.exports = function(app, config) { 4 | var siteInfo = config.siteInfo; 5 | var arrAppList = config.arrAppList; 6 | var arrServerList = config.arrServerList; 7 | app.get('/rdfeed-:apikey.xml', function(req, res) { 8 | var params = req.params; 9 | var apikey = params['apikey'] || ''; 10 | app.render('rdfeed',{ 11 | arrAppList: arrAppList, 12 | arrServerList: arrServerList, 13 | apikey: apikey 14 | }, function(err, content){ 15 | res.type('xml').end('\ufeff'+content); 16 | }); 17 | }); 18 | } -------------------------------------------------------------------------------- /f2etest-web/control/version.js: -------------------------------------------------------------------------------- 1 | module.exports = function(app, config) { 2 | app.get('/version', function(req, res) { 3 | var query = req.query; 4 | var callback = query['callback'] || ''; 5 | 6 | var package = config.package; 7 | var result = { 8 | name: 'f2etest', 9 | version: package.version, 10 | author: package.author, 11 | license: package.license 12 | }; 13 | 14 | result = JSON.stringify(result); 15 | 16 | if(callback){ 17 | res.type('js'); 18 | result = callback+'('+result+');'; 19 | } 20 | else{ 21 | res.type('json'); 22 | } 23 | 24 | res.end(result); 25 | }); 26 | } -------------------------------------------------------------------------------- /f2etest-web/cp/jsunit.js: -------------------------------------------------------------------------------- 1 | var PageJsUnit = require('pagejsunit'); 2 | process.on('message', function(config) { 3 | var coverageInclude = config.coverageInclude; 4 | var coverageExclude = config.coverageExclude; 5 | var timeout = config.timeout; 6 | var delay = config.delay; 7 | try{ 8 | if(coverageInclude){ 9 | coverageInclude = eval(coverageInclude); 10 | config.coverageInclude = coverageInclude; 11 | } 12 | if(coverageExclude){ 13 | coverageExclude = eval(coverageExclude); 14 | config.coverageExclude = coverageExclude; 15 | } 16 | if(timeout){ 17 | timeout = parseInt(timeout, 10); 18 | config.timeout = timeout; 19 | } 20 | if(delay){ 21 | delay = parseInt(delay, 10); 22 | config.delay = delay; 23 | } 24 | } 25 | catch(e){} 26 | PageJsUnit.run(config, function(error, jsUnitResult){ 27 | process.send({ 28 | error: error, 29 | jsUnitResult: jsUnitResult 30 | }); 31 | }); 32 | }); -------------------------------------------------------------------------------- /f2etest-web/i18n/en.js: -------------------------------------------------------------------------------- 1 | { 2 | "Logout": "Logout", 3 | "Help": "Help", 4 | "Install": "Install", 5 | "Statistics": "Statistics", 6 | "Prev": "Prev", 7 | "Next": "Next", 8 | "initTip": "Now initialize your account, please wait.", 9 | "initErrorMessage": "Initialize failed, please contact administrator, error message: ", 10 | "Proxy to local": "Proxy to local" 11 | } -------------------------------------------------------------------------------- /f2etest-web/i18n/zh-cn.js: -------------------------------------------------------------------------------- 1 | { 2 | "Logout": "注销", 3 | "Help": "帮助", 4 | "Install": "安装到电脑", 5 | "Statistics": "统计", 6 | "Prev": "上一个", 7 | "Next": "下一个", 8 | "initTip": "正在初始化您的账号,请稍等……", 9 | "initErrorMessage": "初始化失败,请联系管理员,错误信息:", 10 | "Proxy to local": "代理到本地" 11 | } -------------------------------------------------------------------------------- /f2etest-web/i18n/zh-tw.js: -------------------------------------------------------------------------------- 1 | { 2 | "Logout": "註銷", 3 | "Help": "幫助", 4 | "Install": "安裝到電腦", 5 | "Statistics": "統計", 6 | "Prev": "上一個", 7 | "Next": "下一個", 8 | "initTip": "正在初始化您的賬號,請稍等……", 9 | "initErrorMessage": "初始化失敗,請聯繫管理員,錯誤信息:", 10 | "Proxy to local": "代理到本地" 11 | } -------------------------------------------------------------------------------- /f2etest-web/lib/db.js: -------------------------------------------------------------------------------- 1 | var mysql = require('mysql'); 2 | 3 | var siteInfo = require('../conf/site.json'); 4 | 5 | pool = mysql.createPool({ 6 | host : siteInfo.dbHost, 7 | port : siteInfo.dbPort, 8 | user : siteInfo.dbUser, 9 | password : siteInfo.dbPass, 10 | database : siteInfo.dbTable 11 | }); 12 | 13 | module.exports = pool; -------------------------------------------------------------------------------- /f2etest-web/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "f2etest", 3 | "version": "3.3.1", 4 | "description": "", 5 | "main": "app.js", 6 | "dependencies": { 7 | "async": "0.9.0", 8 | "body-parser": "1.12.0", 9 | "cookie-parser": "1.4.0", 10 | "cookie-session": "1.2.0", 11 | "ejs": "2.3.1", 12 | "express": "4.12.0", 13 | "i18n": "0.5.0", 14 | "mysql": "2.5.5", 15 | "pagejsunit": "1.0.18", 16 | "request": "2.53.0" 17 | }, 18 | "devDependencies": {}, 19 | "scripts": { 20 | "start": "node app", 21 | "test": "echo \"Error: no test specified\" && exit 1" 22 | }, 23 | "keywords": [ 24 | "f2etest", 25 | "browser" 26 | ], 27 | "author": "yanis.wang@gmail.com", 28 | "license": "MIT" 29 | } 30 | -------------------------------------------------------------------------------- /f2etest-web/public/demo/jasmine.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Jasmine Spec Runner v2.4.1 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /f2etest-web/public/demo/lib/jasmine-2.4.1/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/demo/lib/jasmine-2.4.1/jasmine_favicon.png -------------------------------------------------------------------------------- /f2etest-web/public/demo/mocha.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Mocha 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /f2etest-web/public/demo/qunit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | QUnit Example 5 | 6 | 7 | 8 |
9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /f2etest-web/public/demo/src/jasmine.js: -------------------------------------------------------------------------------- 1 | describe("suite 1", function() { 2 | var a; 3 | 4 | describe("suite 2", function() { 5 | 6 | it("it 1", function() { 7 | a = true; 8 | 9 | expect(a).toBe(true); 10 | expect(true).toBe(true); 11 | }); 12 | 13 | it("it 2", function() { 14 | a = false; 15 | 16 | expect(a).toBe('2'); 17 | expect('a').toBe('b'); 18 | }); 19 | 20 | it("it 3", function() { 21 | pending('this is why it is pending'); 22 | }); 23 | 24 | }); 25 | 26 | }); -------------------------------------------------------------------------------- /f2etest-web/public/demo/src/mocha1.js: -------------------------------------------------------------------------------- 1 | function ttt(){ 2 | if(1){console.log('start1'); 3 | } 4 | else{ 5 | console.log('start2'); 6 | } 7 | } 8 | ttt(); 9 | ttt(); -------------------------------------------------------------------------------- /f2etest-web/public/demo/src/qunit.js: -------------------------------------------------------------------------------- 1 | QUnit.module( "group a" ); 2 | QUnit.test( "a basic test example", function( assert ) { 3 | assert.ok( true, "this test is fine" ); 4 | assert.ok( false, "false111" ); 5 | assert.ok( false, "false222" ); 6 | }); 7 | QUnit.test( "a basic test example 2", function( assert ) { 8 | assert.ok( true, "this test is fine" ); 9 | }); 10 | 11 | QUnit.module( "group b" ); 12 | QUnit.test( "a basic test example 3", function( assert ) { 13 | assert.ok( true, "this test is fine" ); 14 | }); -------------------------------------------------------------------------------- /f2etest-web/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/favicon.ico -------------------------------------------------------------------------------- /f2etest-web/public/font/anticon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/font/anticon.woff -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/2345.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/2345.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/360chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/360chrome.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/360se.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/360se.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/access.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/android.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/android.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/chrome.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/desktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/desktop.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/edge.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/excel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/excel.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/firefox.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/hostsshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/hostsshare.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie10.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie11.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie6.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie7.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie8.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ie9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ie9.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/liebao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/liebao.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/maxthon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/maxthon.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/navicat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/navicat.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/notepadplus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/notepadplus.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/opera.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/phantomjs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/phantomjs.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/powerpoint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/powerpoint.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/qqbrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/qqbrowser.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/sogou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/sogou.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/theworld.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/theworld.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/ucbrowser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/ucbrowser.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/word.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/app/xmind.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/app/xmind.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/arrow.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/bg/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/bg/1.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/bg/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/bg/2.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/bg/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/bg/3.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/bg/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/bg/4.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/cover.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/f2etest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/f2etest.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/br.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/br.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/by.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/ca.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/ca.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/es.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/es.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/fr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/fr.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/il.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/il.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/it.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/it.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/nl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/nl.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/ru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/ru.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/tr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/tr.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/ua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/ua.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/uk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/uk.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/flag/us.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/flag/us.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/header_gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/header_gradient.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/2345.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/2345.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/360chrome.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/360chrome.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/360se.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/360se.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/access.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/access.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/chrome.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/chrome.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/desktop.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/desktop.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/edge.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/edge.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/excel.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/excel.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/firefox.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/firefox.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/hostsshare.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/hostsshare.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie10.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie10.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie11.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie11.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie6.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie6.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie7.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie7.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie8.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie8.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ie9.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ie9.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/liebao.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/liebao.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/maxthon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/maxthon.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/navicat.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/navicat.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/notepadplus.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/notepadplus.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/opera.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/opera.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/powerpoint.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/powerpoint.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/qqbrowser.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/qqbrowser.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/sogou.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/sogou.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/theworld.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/theworld.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/ucbrowser.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/ucbrowser.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/word.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/word.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ico/xmind.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ico/xmind.ico -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ie-warning/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ie-warning/chrome.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ie-warning/firefox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ie-warning/firefox.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ie-warning/opera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ie-warning/opera.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/ie-warning/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/ie-warning/warning.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/loading.gif -------------------------------------------------------------------------------- /f2etest-web/public/imgs/running.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /f2etest-web/public/imgs/screenshot/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/screenshot/chrome.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/screenshot/mac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/screenshot/mac.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/screenshot/windows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/screenshot/windows.jpg -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/failed.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/jasmine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/jasmine.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/mocha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/mocha.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/passed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/passed.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/qunit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/qunit.png -------------------------------------------------------------------------------- /f2etest-web/public/imgs/test/running.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/test/running.gif -------------------------------------------------------------------------------- /f2etest-web/public/imgs/video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/imgs/video.png -------------------------------------------------------------------------------- /f2etest-web/public/js/bg.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var bgId = localStorage.getItem('bgid') || 1; 3 | var maxId = 4; 4 | var jBackground = $('#background'); 5 | var jPrevbg = $('#prevbg'); 6 | var jNextbg = $('#nextbg'); 7 | jPrevbg.on('click', function(){ 8 | if(bgId > 1){ 9 | bgId--; 10 | refreshBg(); 11 | } 12 | }); 13 | jNextbg.on('click', function(){ 14 | if(bgId < maxId){ 15 | bgId++; 16 | refreshBg(); 17 | } 18 | }); 19 | function refreshBg(noAni){ 20 | localStorage.setItem('bgid', bgId); 21 | var bgUrl = 'imgs/bg/'+bgId+'.jpg'; 22 | if(!noAni){ 23 | // preload bg 24 | $('').attr('src', bgUrl); 25 | jBackground.fadeOut(1000, function(){ 26 | jBackground.attr('src', bgUrl).fadeIn(1000); 27 | }); 28 | } 29 | else{ 30 | jBackground.attr('src', bgUrl); 31 | } 32 | jPrevbg.css('background-position','0px '+(bgId <= 1?'0':'-40')+'px'); 33 | jNextbg.css('background-position','-24px '+(bgId >= maxId?'0':'-40')+'px'); 34 | } 35 | refreshBg(true); 36 | })(); -------------------------------------------------------------------------------- /f2etest-web/public/js/ie-warning.js: -------------------------------------------------------------------------------- 1 | function setCookie(name, value) { 2 | if(name != '') 3 | today = new Date(); 4 | expires = new Date(today.getTime() + (8 * 7 * 86400000)); 5 | document.cookie = name + '=' + value + '; expires=' + expires; 6 | } 7 | 8 | function getCookie(name) { 9 | if(name == '') 10 | return(''); 11 | 12 | name_index = document.cookie.indexOf(name + '='); 13 | 14 | if(name_index == -1) 15 | return(''); 16 | 17 | cookie_value = document.cookie.substr(name_index + name.length + 1, document.cookie.length); 18 | 19 | end_of_cookie = cookie_value.indexOf(';'); 20 | if(end_of_cookie != -1) 21 | cookie_value = cookie_value.substr(0, end_of_cookie); 22 | 23 | space = cookie_value.indexOf('+'); 24 | while(space != -1) { 25 | cookie_value = cookie_value.substr(0, space) + ' ' + 26 | cookie_value.substr(space + 1, cookie_value.length); 27 | space = cookie_value.indexOf('+'); 28 | } 29 | 30 | return(cookie_value); 31 | } 32 | 33 | if (getCookie('warning_has_shown') != 'yes') { 34 | // your warning html url 35 | var warning_url = 'ie-warning.html'; 36 | location.href = warning_url+'?return='+location.href; 37 | } 38 | -------------------------------------------------------------------------------- /f2etest-web/public/jscover/jscoverage-highlight.css: -------------------------------------------------------------------------------- 1 | /* 2 | jscoverage-highlight.css - JSCoverage syntax highlighting style sheet 3 | Copyright (C) 2008, 2009, 2010 siliconforks.com 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License as published by 7 | the Free Software Foundation; either version 2 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License along 16 | with this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 | */ 19 | 20 | /* keyword, type, symbol, cbracket */ 21 | #sourceTable .k { 22 | font-weight: bold; 23 | } 24 | 25 | /* string, regexp, number */ 26 | #sourceTable .s { 27 | color: #006400; 28 | } 29 | 30 | /* specialchar */ 31 | #sourceTable .t { 32 | color: #2e8b57; 33 | } 34 | 35 | /* comment */ 36 | #sourceTable .c { 37 | font-style: italic; 38 | } 39 | -------------------------------------------------------------------------------- /f2etest-web/public/jscover/jscoverage-localstorage.js: -------------------------------------------------------------------------------- 1 | if (typeof(_$jscoverage) === "undefined" && (typeof(Storage) !== "undefined") && typeof(localStorage["jscover"]) !== "undefined") 2 | _$jscoverage = jscoverage_parseCoverageJSON(localStorage["jscover"]); 3 | if (typeof(jscoverbeforeunload) === "undefined") { 4 | var jscoverbeforeunload = (window.onbeforeunload) ? window.onbeforeunload : function () {}; 5 | window.onbeforeunload = function () { 6 | jscoverbeforeunload(); 7 | if ((typeof(_$jscoverage) !== "undefined") && (typeof(Storage) !== "undefined")) 8 | localStorage["jscover"] = jscoverage_serializeCoverageToJSON(); 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /f2etest-web/public/jscover/jscoverage-throbber.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/f2etest-web/public/jscover/jscoverage-throbber.gif -------------------------------------------------------------------------------- /f2etest-web/views/footer.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 |
6 | 7 | 8 | 31 | 32 | -------------------------------------------------------------------------------- /f2etest-web/views/header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /f2etest-web/views/local.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | <%=siteName + ' - ' + siteAbout%> 8 | 9 | 10 | 11 | 12 | 13 | <% include header.html %> 14 |
15 |
16 |
17 |

为什么要代理到本地?

18 |

F2etest标准的hosts绑定方式是在hosts中进行编辑,但是代理到本地后,将可以获得以下额外优点:

19 |
    20 |
  1. 复用本地的hosts绑定,一次绑定,F2etest中所有浏览器同时生效,保持两边一致,提高开发测试效率
  2. 21 |
  3. 解决办公网本机IP地址经常变动的问题,仅需将此组件设置为开机自动启动即可
  4. 22 |
  5. 可以在本地灵活的切换DNS,以方便切换公共环境
  6. 23 |
  7. 本地也可以绑定此代理,可彻底解决浏览器DNS缓存不生效问题,任何本地的hosts变更,都可以即时生效
  8. 24 |
25 |

如何代理到本地?

26 |
    27 |
  1. 安装NodeJs:https://nodejs.org/
  2. 28 |
  3. 安装组件:npm install f2etest-local -g
  4. 29 |
  5. 开启代理:f2etest-local start --port 1080 --server http://<%=host%>/ --name <%=userid%> --apikey <%=apiKey%>
  6. 30 |
  7. 关闭代理:f2etest-local stop
  8. 31 |
32 |

f2etest-local详细介绍:https://www.npmjs.com/package/f2etest-local

33 |
34 |
35 | <% include footer.html %> 36 | 37 | 38 | -------------------------------------------------------------------------------- /f2etest-web/views/rdfeed.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <% for(var i=0; i 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | <% } %> 19 | 20 | 21 | <% for(var i=0; i 22 | 23 | <% } %> 24 | 25 | 26 | -------------------------------------------------------------------------------- /hostsShare-client/build.bat: -------------------------------------------------------------------------------- 1 | cd build 2 | 7z.exe a -tzip hostsShare.nw ../* -x!git/* -x!build/* -mx0 3 | copy /b d:\node-webkit\nw.exe+hostsShare.nw hostsShare.exe 4 | copy d:\node-webkit\nw.pak nw.pak 5 | copy d:\node-webkit\icudt.dll icudt.dll 6 | del hostsShare.nw -------------------------------------------------------------------------------- /hostsShare-client/build/hostsShare.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/hostsShare-client/build/hostsShare.exe -------------------------------------------------------------------------------- /hostsShare-client/build/icudt.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/hostsShare-client/build/icudt.dll -------------------------------------------------------------------------------- /hostsShare-client/build/nw.pak: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/hostsShare-client/build/nw.pak -------------------------------------------------------------------------------- /hostsShare-client/css/codemirror-dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /hostsShare-client/img/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/hostsShare-client/img/icon.png -------------------------------------------------------------------------------- /hostsShare-client/index.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | hostsShare 5 | 6 | 7 | 8 | 9 | 10 |
11 |
12 |

代理服务器:

13 |

代理端口号:

14 |

15 |

提示:代理服务器请使用机器名,可自动代理最新IP

16 |
17 |
当前模式:hosts模式 (点击切换)
18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /hostsShare-client/js/codemirror-hosts.js: -------------------------------------------------------------------------------- 1 | CodeMirror.defineMode("hosts", function() { 2 | return { 3 | token: function(stream, state) { 4 | var ch = stream.peek(), match; 5 | if(stream.sol()){ 6 | state.tokenID = -1; 7 | } 8 | if (ch === "#") { 9 | stream.skipToEnd(); 10 | var string = stream.string; 11 | return /^\s*#\s*=+[^=]+=+/.test(string)?'group': (/^\s*#!/.test(string)?'disabled':'comment'); 12 | } 13 | else if(stream.eatSpace()){ 14 | return null; 15 | } 16 | else{ 17 | state.tokenID++; 18 | if(match = stream.match(/[^\s#]+/)){ 19 | if(state.tokenID === 0){ 20 | return isIp(match[0])?'ip':'name'; 21 | } 22 | return null; 23 | } 24 | } 25 | 26 | stream.next(); 27 | return null; 28 | }, 29 | startState:function(){ 30 | return {tokenID:0}; 31 | } 32 | }; 33 | }); 34 | 35 | -------------------------------------------------------------------------------- /hostsShare-client/js/common.js: -------------------------------------------------------------------------------- 1 | var platform = process.platform; 2 | var isWin = platform.indexOf("win") > -1, 3 | isLinux = platform.indexOf("linux") > -1, 4 | isMac = platform.indexOf("darwin") > -1; 5 | var ctrlKey = isMac? 'Cmd' : 'Ctrl'; 6 | 7 | function isIp(str){ 8 | var match = str.match(/:/g), v6Len = match && match.length; 9 | if(match && v6Len>0 && v6Len<=7){ 10 | return /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/i.test(str) && (/::/.test(str)?str.match(/::/g).length === 1:true); 11 | } 12 | else{ 13 | return /^(\d{1,3}\.){3}\d{1,3}$/.test(str); 14 | } 15 | } -------------------------------------------------------------------------------- /hostsShare-client/js/settings.js: -------------------------------------------------------------------------------- 1 | (function(_win,undefined){ 2 | var settings={}; 3 | settings.get = function(key){ 4 | return localStorage.getItem(key) 5 | } 6 | 7 | settings.set = function(key, value){ 8 | localStorage.setItem(key, value); 9 | } 10 | _win.settings = settings; 11 | })(window); -------------------------------------------------------------------------------- /hostsShare-client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "index.html", 3 | "name": "hostsShare client", 4 | "description": "Client for hostsShare.", 5 | "version": "1.0.0", 6 | "keywords": [ 7 | "hosts", 8 | "share", 9 | "node-webkit" 10 | ], 11 | "window": { 12 | "icon": "img/icon.png", 13 | "toolbar": false, 14 | "frame": true, 15 | "width": 800, 16 | "height": 500, 17 | "position": "center" 18 | }, 19 | "dependencies": { 20 | "request": "^2.53.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /imgs/alibaba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/alibaba.png -------------------------------------------------------------------------------- /imgs/chrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/chrome.png -------------------------------------------------------------------------------- /imgs/jsunit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/jsunit.png -------------------------------------------------------------------------------- /imgs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/logo.png -------------------------------------------------------------------------------- /imgs/mac.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/mac.jpg -------------------------------------------------------------------------------- /imgs/screenshot1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/screenshot1.jpg -------------------------------------------------------------------------------- /imgs/screenshot2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/screenshot2.jpg -------------------------------------------------------------------------------- /imgs/webdriver1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/webdriver1.jpg -------------------------------------------------------------------------------- /imgs/windows.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alibaba/f2etest/3098bbe87f6b241c8e99c5f7ba75929e74cf8085/imgs/windows.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "git-contributor": "^1.0.10" 4 | }, 5 | "scripts": { 6 | "contributor": "git-contributor" 7 | } 8 | } 9 | --------------------------------------------------------------------------------