rubyfox-server 2.8.4.0 → 2.9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +2 -2
- data/lib/rubyfox/server/data/config/ExtensionManagerLock.txt +2 -0
- data/lib/rubyfox/server/data/config/core.xml +9 -9
- data/lib/rubyfox/server/data/config/crossdomain.xml +1 -1
- data/lib/rubyfox/server/data/config/descriptors/config_room.txt +112 -3
- data/lib/rubyfox/server/data/config/descriptors/config_server.txt +550 -73
- data/lib/rubyfox/server/data/config/descriptors/config_zone.txt +11 -2
- data/lib/rubyfox/server/data/config/descriptors/runtime_mmo.txt +74 -0
- data/lib/rubyfox/server/data/config/descriptors/runtime_room.txt +33 -4
- data/lib/rubyfox/server/data/config/descriptors/runtime_user.txt +1 -1
- data/lib/rubyfox/server/data/config/descriptors/runtime_zone.txt +37 -5
- data/lib/rubyfox/server/data/config/keystore.jks +0 -0
- data/lib/rubyfox/server/data/config/log4j.properties +5 -1
- data/lib/rubyfox/server/data/config/logParser.properties +30 -0
- data/lib/rubyfox/server/data/config/server.xml +51 -9
- data/lib/rubyfox/server/data/config/templates/templates.dat +0 -0
- data/lib/rubyfox/server/data/lib/Lib/sfs2x-lib.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpclient-4.3.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpcore-4.3.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/VERSION.txt +7576 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/README.spnego +62 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jdbcRealm.properties +72 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-annotations.xml +20 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-debug.xml +23 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-deploy.xml +62 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-http.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-https.xml +47 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ipaccess.xml +31 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jaas.xml +17 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx-remote.xml +27 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-jmx.xml +43 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-logging.xml +36 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-lowresources.xml +22 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-monitor.xml +30 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-plus.xml +26 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-proxy.xml +35 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-requestlog.xml +32 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-rewrite.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-setuid.xml +30 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy-proxy.xml +158 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-spdy.xml +153 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-ssl.xml +41 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-started.xml +15 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-stats.xml +18 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty-xinetd.xml +54 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty.conf +12 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/jetty.xml +160 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/keystore +0 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/krb5.ini +23 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/spnego.conf +19 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/spnego.properties +1 -0
- data/lib/rubyfox/server/data/lib/jetty/etc/webdefault.xml +540 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/asm-4.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/asm-commons-4.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/ext/.donotdelete +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jaspi/javax.security.auth.message-1.0.0.v201108011116.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.annotation-api-1.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.el-3.0.0.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-2.3.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp-api-2.3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/javax.servlet.jsp.jstl-1.2.0.v201105211821.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-annotations-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-continuation-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-deploy-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-http-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-io-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaas-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jaspi-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jmx-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jndi-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-jsp-jdt-2.3.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-plus-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-proxy-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-rewrite-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-schemas-3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-security-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlet-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-servlets-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-util-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-webapp-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jetty-xml-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.activation-1.1.0.v201105071233.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.mail.glassfish-1.4.1.v201005082020.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/jndi/javax.transaction-api-1.2.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/monitor/jetty-monitor-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/org.eclipse.jdt.core-3.8.2.v20130121.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/servlet-api-3.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/jetty-setuid-java-1.0.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-linux.so +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/setuid/libsetuid-osx.so +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-core-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-common-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-http-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/spdy/spdy-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/start.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket-api-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-client-impl-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax-websocket-server-impl-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/javax.websocket-api-1.0.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-client-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-common-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-server-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/lib/websocket/websocket-servlet-9.1.1.v20140108.jar +0 -0
- data/lib/rubyfox/server/data/lib/jetty/license-eplv10-aslv20.html +576 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/.donotdelete +0 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/annotations.mod +17 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/client.mod +6 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/continuation.mod +6 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/debug.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/deploy.mod +15 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ext.mod +11 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/http.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/https.mod +16 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ipaccess.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jaas.mod +16 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jaspi.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jmx-remote.mod +18 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jmx.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jndi.mod +11 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jsp.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/jvm.mod +23 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/logging.mod +27 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/lowresources.mod +18 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/monitor.mod +13 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn.mod +32 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_10.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_11.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_13.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_15.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_17.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_21.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_25.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_4.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_40.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_45.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_5.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_6.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_7.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/npn/npn-1.7.0_9.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/plus.mod +14 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/proxy.mod +22 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/requestlog.mod +26 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/resources.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/rewrite.mod +12 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/security.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/server.mod +38 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/servlet.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/servlets.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/setuid.mod +19 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/spdy.mod +23 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/ssl.mod +29 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/stats.mod +9 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/webapp.mod +10 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/websocket.mod +12 -0
- data/lib/rubyfox/server/data/lib/jetty/modules/xinetd.mod +17 -0
- data/lib/rubyfox/server/data/lib/jetty/notice.html +111 -0
- data/lib/rubyfox/server/data/lib/jetty/resources/.keep +0 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/README.TXT +24 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/http.ini +7 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/https.ini +9 -0
- data/lib/rubyfox/server/data/lib/jetty/start.d/ssl.ini +19 -0
- data/lib/rubyfox/server/data/lib/jetty/start.ini +84 -0
- data/lib/rubyfox/server/data/lib/jetty/webapps/.keep +0 -0
- data/lib/rubyfox/server/data/lib/logs-analysis-app.jar +0 -0
- data/lib/rubyfox/server/data/lib/netty-3.9.0.Final.jar +0 -0
- data/lib/rubyfox/server/data/lib/scala-library.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-admin.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-core.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-lib.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x-util.jar +0 -0
- data/lib/rubyfox/server/data/lib/sfs2x.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-api-1.7.5.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-log4j12-1.7.5.jar +0 -0
- data/lib/rubyfox/server/data/sfs2x-service +9 -9
- data/lib/rubyfox/server/data/sfs2x-service.vmoptions +1 -1
- data/lib/rubyfox/server/data/sfs2x.sh +6 -6
- data/lib/rubyfox/server/data/www/root/admin/AdminTool.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/ReleaseNotes.txt +23 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedIPs.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bannedUsernames.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bookmarks.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/bootLog.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/connection.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/globalServerStatus.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/logsDownload.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/mMOSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/permissionsAndEvents.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomExtension.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/roomVariables.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeLog.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeRoomSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeUserSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/runtimeZoneSettings.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsApplication.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsDemographics.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsExceptions.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsOverview.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/statsTechnology.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/systemQueueStatus.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/threadPools.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/userManagement.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneExtension.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/assets/icons/tabs/zoneTraffic.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/index.html +4 -16
- data/lib/rubyfox/server/data/www/root/admin/modules/Analytics/Analytics.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/BanManager/BanManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/BlueBoxMonitor/BlueBoxMonitor.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/Dashboard/Dashboard.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/ExtensionManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ExtensionManager/icon.png +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/LicenseManager/LicenseManager.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/LogViewer/LogViewer.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ServerConfigurator/ServerConfigurator.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ZoneConfigurator/ZoneConfigurator.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/ZoneMonitor/ZoneMonitor.swf +0 -0
- data/lib/rubyfox/server/data/www/root/admin/modules/config.xml +1 -0
- data/lib/rubyfox/server/data/www/root/favicon.ico +0 -0
- data/lib/rubyfox/server/data/www/root/favicon.png +0 -0
- data/lib/rubyfox/server/data/www/sfs2x-ws.war +0 -0
- data/lib/rubyfox/server/data/www/sfs2x-ws.xml +30 -0
- data/lib/rubyfox/server/version.rb +1 -1
- data/rubyfox-server.gemspec +1 -0
- metadata +171 -48
- data/.rvmrc +0 -1
- data/lib/rubyfox/server/data/config/jetty/jetty.xml +0 -214
- data/lib/rubyfox/server/data/config/jetty/realm.properties +0 -21
- data/lib/rubyfox/server/data/config/jetty/webdefault.xml +0 -410
- data/lib/rubyfox/server/data/config/myprop.properties +0 -5
- data/lib/rubyfox/server/data/data/bannedusers/users.bin +0 -0
- data/lib/rubyfox/server/data/data/buddylists/BasicExamples/7364666773646667 +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/ant-1.6.5.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/core-3.1.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jetty-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jetty-util-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-glassfish-2.1.v20091210.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-2.1-jetty-6.1.26.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/jsp-api-2.1-glassfish-2.1.v20091210.jar +0 -0
- data/lib/rubyfox/server/data/lib/Jetty/servlet-api-2.5-20081211.jar +0 -0
- data/lib/rubyfox/server/data/lib/extras/slf4j-jdk14-1.5.10.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpclient-4.0.3.jar +0 -0
- data/lib/rubyfox/server/data/lib/httpcore-4.0.1.jar +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/COPYING.txt +0 -504
- data/lib/rubyfox/server/data/lib/jconsole/bug_test_case.py +0 -49
- data/lib/rubyfox/server/data/lib/jconsole/console$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/console.py +0 -439
- data/lib/rubyfox/server/data/lib/jconsole/history$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/history.py +0 -82
- data/lib/rubyfox/server/data/lib/jconsole/history_test_case.py +0 -133
- data/lib/rubyfox/server/data/lib/jconsole/introspect$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/introspect.py +0 -373
- data/lib/rubyfox/server/data/lib/jconsole/introspect_test_case.py +0 -19
- data/lib/rubyfox/server/data/lib/jconsole/issue_17_test_case.py +0 -36
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect.py +0 -316
- data/lib/rubyfox/server/data/lib/jconsole/jintrospect_test_case.py +0 -107
- data/lib/rubyfox/server/data/lib/jconsole/popup$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/popup.py +0 -178
- data/lib/rubyfox/server/data/lib/jconsole/run_tests.py +0 -8
- data/lib/rubyfox/server/data/lib/jconsole/static_test_case.py +0 -36
- data/lib/rubyfox/server/data/lib/jconsole/testcase.py +0 -38
- data/lib/rubyfox/server/data/lib/jconsole/tip$py.class +0 -0
- data/lib/rubyfox/server/data/lib/jconsole/tip.py +0 -47
- data/lib/rubyfox/server/data/lib/slf4j-api-1.5.10.jar +0 -0
- data/lib/rubyfox/server/data/lib/slf4j-log4j12.jar +0 -0
- data/lib/rubyfox/server/data/lib/ws-engine.jar +0 -0
- data/lib/rubyfox/server/data/www/BlueBox.war +0 -0
- data/lib/rubyfox/server/data/www/root/admin/AdminTool.html +0 -120
@@ -1,19 +0,0 @@
|
|
1
|
-
import unittest
|
2
|
-
import introspect
|
3
|
-
|
4
|
-
class IntrospectTestCase(unittest.TestCase):
|
5
|
-
|
6
|
-
def setUp(self):
|
7
|
-
pass
|
8
|
-
|
9
|
-
def testGetRoot(self):
|
10
|
-
"figure out how getRoot behaves"
|
11
|
-
import string
|
12
|
-
root = introspect.getRoot("string.", ".")
|
13
|
-
self.assertEquals("string", root)
|
14
|
-
|
15
|
-
root = introspect.getRoot("string.join", "(")
|
16
|
-
self.assertEquals("string.join", root)
|
17
|
-
|
18
|
-
if __name__ == '__main__':
|
19
|
-
unittest.main()
|
@@ -1,36 +0,0 @@
|
|
1
|
-
import unittest
|
2
|
-
import jintrospect
|
3
|
-
|
4
|
-
class Issue17TestCase(unittest.TestCase):
|
5
|
-
"""http://code.google.com/p/jythonconsole/issues/detail?id=17"""
|
6
|
-
|
7
|
-
def setUp(self):
|
8
|
-
pass
|
9
|
-
|
10
|
-
def testStaticCompletion(self):
|
11
|
-
from java.util import Calendar
|
12
|
-
list = jintrospect.getAutoCompleteList("Calendar", locals())
|
13
|
-
self.assert_(len(list) > 0)
|
14
|
-
self.assert_(list.index("getInstance") > -1)
|
15
|
-
|
16
|
-
def testStaticCallTip(self):
|
17
|
-
# Call Tip was failing because Calendar.getInstance
|
18
|
-
# returns PyReflectedMethod which was not being handled properly
|
19
|
-
from java.util import Calendar
|
20
|
-
command = "Calendar.getInstance";
|
21
|
-
tip = jintrospect.getCallTipJava(command, locals())
|
22
|
-
# tip should be something like
|
23
|
-
# getInstance(java.util.TimeZone, java.util.Locale) -> java.util.Calendar
|
24
|
-
# getInstance(java.util.TimeZone) -> java.util.Calendar
|
25
|
-
# getInstance(java.util.Locale) -> java.util.Calendar
|
26
|
-
# getInstance() -> java.util.Calendar'
|
27
|
-
self.assert_(tip[2] != '')
|
28
|
-
self.assert_(tip[2].index("getInstance") > -1)
|
29
|
-
self.assert_(tip[2].index("TimeZone") > -1)
|
30
|
-
|
31
|
-
def testIsPython(self):
|
32
|
-
from java.util import Calendar
|
33
|
-
self.failIf(jintrospect.ispython(Calendar.getInstance), "Calendar.getInstance is not Python")
|
34
|
-
|
35
|
-
if __name__ == '__main__':
|
36
|
-
unittest.main()
|
Binary file
|
@@ -1,316 +0,0 @@
|
|
1
|
-
"""Extend introspect.py for Java based Jython classes."""
|
2
|
-
|
3
|
-
from org.python.core import PyReflectedFunction
|
4
|
-
from java.lang import Class, Object
|
5
|
-
from java.lang.reflect import Modifier
|
6
|
-
from introspect import *
|
7
|
-
from sets import Set
|
8
|
-
import string
|
9
|
-
import re
|
10
|
-
import types
|
11
|
-
|
12
|
-
__author__ = "Don Coleman <dcoleman@chariotsolutions.com>"
|
13
|
-
|
14
|
-
_re_import_package = re.compile('import\s+(.+)\.') # import package
|
15
|
-
# TODO need to check for a trailing '.' example: "from java import lang." don't autocomplete on trailing '.'
|
16
|
-
_re_from_package_import = re.compile('from\s+(\w+(?:\.\w+)*)\.?(?:\s*import\s*)?') # from package import class
|
17
|
-
|
18
|
-
def completePackageName(target):
|
19
|
-
""" Get a package object given the full name."""
|
20
|
-
targetComponents = target.split('.')
|
21
|
-
base = targetComponents[0]
|
22
|
-
baseModule = __import__(base, globals(), locals())
|
23
|
-
module = baseModule
|
24
|
-
|
25
|
-
for component in targetComponents[1:]:
|
26
|
-
module = getattr(module, component)
|
27
|
-
|
28
|
-
list = dir(module)
|
29
|
-
list.remove('__name__')
|
30
|
-
list.append('*')
|
31
|
-
return list
|
32
|
-
|
33
|
-
def getPackageName(command):
|
34
|
-
|
35
|
-
match = _re_import_package.match(command)
|
36
|
-
if not match:
|
37
|
-
#try the other re
|
38
|
-
match = _re_from_package_import.match(command)
|
39
|
-
|
40
|
-
return match.groups()[0]
|
41
|
-
|
42
|
-
def getAutoCompleteList(command='', locals=None, includeMagic=1, includeSingle=1, includeDouble=1):
|
43
|
-
"""
|
44
|
-
Return list of auto-completion options for command.
|
45
|
-
The list of options will be based on the locals namespace.
|
46
|
-
"""
|
47
|
-
|
48
|
-
# Temp KLUDGE here rather than in console.py
|
49
|
-
command += "."
|
50
|
-
|
51
|
-
attributes = []
|
52
|
-
# Get the proper chunk of code from the command.
|
53
|
-
root = getRoot(command, terminator='.')
|
54
|
-
|
55
|
-
# check to see if the user is attempting to import a package
|
56
|
-
# this may need to adjust this so that it doesn't pollute the namespace
|
57
|
-
if command.startswith('import ') or command.startswith('from '):
|
58
|
-
target = getPackageName(command)
|
59
|
-
return completePackageName(target)
|
60
|
-
|
61
|
-
try:
|
62
|
-
if locals is not None:
|
63
|
-
object = eval(root, locals)
|
64
|
-
else:
|
65
|
-
object = eval(root)
|
66
|
-
except:
|
67
|
-
return attributes
|
68
|
-
|
69
|
-
if ispython(object): # use existing code
|
70
|
-
attributes = getAttributeNames(object, includeMagic, includeSingle, includeDouble)
|
71
|
-
else:
|
72
|
-
if inspect.isclass(object):
|
73
|
-
attributes = staticMethodNames(object)
|
74
|
-
attributes.extend(staticFieldNames(object))
|
75
|
-
else:
|
76
|
-
attributes = list(instanceMethodNames(object.__class__))
|
77
|
-
|
78
|
-
return attributes
|
79
|
-
|
80
|
-
def instanceMethodNames(clazz):
|
81
|
-
"""return a Set of instance method name for a Class"""
|
82
|
-
|
83
|
-
method_names = Set()
|
84
|
-
declared_methods = Class.getDeclaredMethods(clazz)
|
85
|
-
for method in declared_methods:
|
86
|
-
modifiers = method.getModifiers()
|
87
|
-
if not Modifier.isStatic(modifiers) and Modifier.isPublic(modifiers):
|
88
|
-
name = method.name
|
89
|
-
method_names.add(name)
|
90
|
-
if name.startswith("get") and len(name) > 3 and len(method.getParameterTypes()) == 0:
|
91
|
-
property_name = name[3].lower() + name[4:]
|
92
|
-
method_names.add(property_name)
|
93
|
-
|
94
|
-
for eachBase in clazz.__bases__:
|
95
|
-
if not ispython(eachBase):
|
96
|
-
method_names = method_names | instanceMethodNames(eachBase)
|
97
|
-
|
98
|
-
return method_names
|
99
|
-
|
100
|
-
def staticMethodNames(clazz):
|
101
|
-
"""return a list of static method name for a class"""
|
102
|
-
|
103
|
-
static_methods = {}
|
104
|
-
declared_methods = Class.getDeclaredMethods(clazz)
|
105
|
-
for method in declared_methods:
|
106
|
-
if Modifier.isStatic(method.getModifiers()) and Modifier.isPublic(method.getModifiers()):
|
107
|
-
static_methods[method.name] = method
|
108
|
-
methods = static_methods.keys()
|
109
|
-
|
110
|
-
for eachBase in clazz.__bases__:
|
111
|
-
# with Jython 2.5 type is a base of Object, which puts asName in the list
|
112
|
-
# will be a problem for real Java objects that extend Python objects
|
113
|
-
# see similar "fixes" in instanceMethodNames and staticFieldNames
|
114
|
-
if not ispython(eachBase):
|
115
|
-
methods.extend(staticMethodNames(eachBase))
|
116
|
-
|
117
|
-
return methods
|
118
|
-
|
119
|
-
def staticFieldNames(clazz):
|
120
|
-
"""return a list of static field names for class"""
|
121
|
-
|
122
|
-
static_fields = {}
|
123
|
-
declared_fields = Class.getDeclaredFields(clazz)
|
124
|
-
for field in declared_fields:
|
125
|
-
if Modifier.isStatic(field.getModifiers()) and Modifier.isPublic(field.getModifiers()):
|
126
|
-
static_fields[field.name] = field
|
127
|
-
fields = static_fields.keys()
|
128
|
-
|
129
|
-
for eachBase in clazz.__bases__:
|
130
|
-
if not ispython(eachBase):
|
131
|
-
fields.extend(staticFieldNames(eachBase))
|
132
|
-
|
133
|
-
return fields
|
134
|
-
|
135
|
-
def getCallTipJava(command='', locals=None):
|
136
|
-
"""For a command, return a tuple of object name, argspec, tip text.
|
137
|
-
|
138
|
-
The call tip information will be based on the locals namespace."""
|
139
|
-
|
140
|
-
calltip = ('', '', '') # object name, argspec, tip text.
|
141
|
-
|
142
|
-
# Get the proper chunk of code from the command.
|
143
|
-
root = getRoot(command, terminator='(')
|
144
|
-
|
145
|
-
try:
|
146
|
-
if locals is not None:
|
147
|
-
object = eval(root, locals)
|
148
|
-
else:
|
149
|
-
object = eval(root)
|
150
|
-
except:
|
151
|
-
return calltip
|
152
|
-
|
153
|
-
if ispython(object):
|
154
|
-
# Patrick's code handles python code
|
155
|
-
# TODO fix in future because getCallTip runs eval() again
|
156
|
-
return getCallTip(command, locals)
|
157
|
-
|
158
|
-
name = ''
|
159
|
-
try:
|
160
|
-
name = object.__name__
|
161
|
-
except AttributeError:
|
162
|
-
pass
|
163
|
-
|
164
|
-
tipList = []
|
165
|
-
argspec = '' # not using argspec for Java
|
166
|
-
|
167
|
-
if inspect.isclass(object):
|
168
|
-
# get the constructor(s)
|
169
|
-
# TODO consider getting modifiers since jython can access private methods
|
170
|
-
constructors = object.getConstructors()
|
171
|
-
for constructor in constructors:
|
172
|
-
paramList = []
|
173
|
-
paramTypes = constructor.getParameterTypes()
|
174
|
-
# paramTypes is an array of classes, we need Strings
|
175
|
-
# TODO consider list comprehension
|
176
|
-
for param in paramTypes:
|
177
|
-
paramList.append(param.__name__)
|
178
|
-
paramString = string.join(paramList,', ')
|
179
|
-
tip = "%s(%s)" % (constructor.name, paramString)
|
180
|
-
tipList.append(tip)
|
181
|
-
|
182
|
-
elif inspect.ismethod(object) or isinstance(object, PyReflectedFunction):
|
183
|
-
method = object
|
184
|
-
try:
|
185
|
-
object = method.im_class
|
186
|
-
except: # PyReflectedFunction
|
187
|
-
object = method.argslist[0].declaringClass
|
188
|
-
|
189
|
-
# java allows overloading so we may have more than one method
|
190
|
-
methodArray = object.getMethods()
|
191
|
-
|
192
|
-
for eachMethod in methodArray:
|
193
|
-
if eachMethod.name == method.__name__:
|
194
|
-
paramList = []
|
195
|
-
for eachParam in eachMethod.parameterTypes:
|
196
|
-
paramList.append(eachParam.__name__)
|
197
|
-
|
198
|
-
paramString = string.join(paramList,', ')
|
199
|
-
|
200
|
-
# create a python style string a la PyCrust
|
201
|
-
# we're showing the parameter type rather than the parameter name, since that's all I can get
|
202
|
-
# we need to show multiple methods for overloading
|
203
|
-
# do we want to show the method visibility? how about exceptions?
|
204
|
-
# note: name, return type and exceptions same for EVERY overload method
|
205
|
-
|
206
|
-
tip = "%s(%s) -> %s" % (eachMethod.name, paramString, eachMethod.returnType.name)
|
207
|
-
tipList.append(tip)
|
208
|
-
|
209
|
-
tip_text = beautify(string.join(tipList,"\n"))
|
210
|
-
calltip = (name, argspec, tip_text)
|
211
|
-
return calltip
|
212
|
-
|
213
|
-
def beautify(tip_text):
|
214
|
-
"Make the call tip text prettier"
|
215
|
-
tip_text = tip_text.replace("java.lang.", "")
|
216
|
-
if "[" in tip_text:
|
217
|
-
tip_text = tip_text.replace("[B", "byte[]")
|
218
|
-
tip_text = tip_text.replace("[S", "short[]")
|
219
|
-
tip_text = tip_text.replace("[I", "int[]")
|
220
|
-
tip_text = tip_text.replace("[J", "long[]")
|
221
|
-
tip_text = tip_text.replace("[F", "float[]")
|
222
|
-
tip_text = tip_text.replace("[D", "double[]")
|
223
|
-
tip_text = tip_text.replace("[Z", "boolean[]")
|
224
|
-
tip_text = tip_text.replace("[C", "char[]")
|
225
|
-
return tip_text
|
226
|
-
|
227
|
-
def ispython21(object):
|
228
|
-
"""
|
229
|
-
Figure out if this is Python code or Java Code
|
230
|
-
|
231
|
-
"""
|
232
|
-
pyclass = 0
|
233
|
-
pycode = 0
|
234
|
-
pyinstance = 0
|
235
|
-
|
236
|
-
if inspect.isclass(object):
|
237
|
-
try:
|
238
|
-
object.__doc__
|
239
|
-
pyclass = 1
|
240
|
-
except AttributeError:
|
241
|
-
pyclass = 0
|
242
|
-
|
243
|
-
elif inspect.ismethod(object):
|
244
|
-
try:
|
245
|
-
object.__dict__
|
246
|
-
pycode = 1
|
247
|
-
except AttributeError:
|
248
|
-
pycode = 0
|
249
|
-
else: # I guess an instance of an object falls here
|
250
|
-
try:
|
251
|
-
object.__dict__
|
252
|
-
pyinstance = 1
|
253
|
-
except AttributeError:
|
254
|
-
pyinstance = 0
|
255
|
-
|
256
|
-
# print "object", object, "pyclass", pyclass, "pycode", pycode, "returning", pyclass | pycode
|
257
|
-
|
258
|
-
return pyclass | pycode | pyinstance
|
259
|
-
|
260
|
-
|
261
|
-
def ispython22(object):
|
262
|
-
"""
|
263
|
-
Return true if object is Python code.
|
264
|
-
"""
|
265
|
-
|
266
|
-
object_type = type(object)
|
267
|
-
|
268
|
-
if object_type.__name__.startswith("java") or isinstance(object, PyReflectedFunction):
|
269
|
-
python = False
|
270
|
-
|
271
|
-
elif object_type is types.MethodType:
|
272
|
-
# both Java and Python methods return MethodType
|
273
|
-
try:
|
274
|
-
object.__dict__
|
275
|
-
python = True
|
276
|
-
except AttributeError:
|
277
|
-
python = False
|
278
|
-
else:
|
279
|
-
# assume everything else is python
|
280
|
-
python = True
|
281
|
-
|
282
|
-
return python
|
283
|
-
|
284
|
-
def ispython25(object):
|
285
|
-
"""
|
286
|
-
Return true if object is Python code.
|
287
|
-
"""
|
288
|
-
|
289
|
-
if isinstance(object, Class):
|
290
|
-
python = False
|
291
|
-
elif isinstance(object, Object):
|
292
|
-
python = False
|
293
|
-
elif isinstance(object, PyReflectedFunction):
|
294
|
-
python = False
|
295
|
-
elif type(object) == types.MethodType and not ispython(object.im_class):
|
296
|
-
python = False
|
297
|
-
else:
|
298
|
-
# assume everything else is python
|
299
|
-
python = True
|
300
|
-
|
301
|
-
return python
|
302
|
-
|
303
|
-
# Dynamically assign the version of ispython
|
304
|
-
# To deal with differences between Jython 2.1, 2.2 and 2.5
|
305
|
-
if sys.version == '2.1':
|
306
|
-
ispython = ispython21
|
307
|
-
elif sys.version.startswith('2.5'):
|
308
|
-
ispython = ispython25
|
309
|
-
else:
|
310
|
-
ispython = ispython22
|
311
|
-
|
312
|
-
def debug(name, value=None):
|
313
|
-
if value == None:
|
314
|
-
print >> sys.stderr, name
|
315
|
-
else:
|
316
|
-
print >> sys.stderr, "%s = %s" % (name, value)
|
@@ -1,107 +0,0 @@
|
|
1
|
-
import unittest
|
2
|
-
import jintrospect
|
3
|
-
from java.lang import String
|
4
|
-
|
5
|
-
class JIntrospectTestCase(unittest.TestCase):
|
6
|
-
|
7
|
-
def testGetAutoCompleteList(self):
|
8
|
-
s = String("Unit Test")
|
9
|
-
list = jintrospect.getAutoCompleteList("s", locals())
|
10
|
-
self.assertNotEmpty(list)
|
11
|
-
self.assertContains(list, "contains")
|
12
|
-
|
13
|
-
def testGetCallTipJava(self):
|
14
|
-
s = String("Unit Test")
|
15
|
-
tip = jintrospect.getCallTipJava("s.contains", locals())
|
16
|
-
self.assertEquals("contains(CharSequence) -> boolean", tip[2])
|
17
|
-
|
18
|
-
def testGetPackageName(self):
|
19
|
-
package_name = jintrospect.getPackageName("import java.")
|
20
|
-
self.assertEquals("java", package_name)
|
21
|
-
|
22
|
-
package_name = jintrospect.getPackageName("from java.awt import")
|
23
|
-
self.assertEquals("java.awt", package_name)
|
24
|
-
|
25
|
-
def testCompletePackageName(self):
|
26
|
-
try:
|
27
|
-
list = jintrospect.completePackageName("bogus")
|
28
|
-
fail("Expecting import error.")
|
29
|
-
except ImportError:
|
30
|
-
pass
|
31
|
-
|
32
|
-
list = jintrospect.completePackageName("java")
|
33
|
-
self.assertNotEmpty(list)
|
34
|
-
self.assertContains(list, "awt")
|
35
|
-
|
36
|
-
list = jintrospect.completePackageName("java.util")
|
37
|
-
self.assertNotEmpty(list)
|
38
|
-
self.assertContains(list, "ArrayList")
|
39
|
-
|
40
|
-
def testIsPython(self):
|
41
|
-
s = String("Java String")
|
42
|
-
self.assert_(not jintrospect.ispython(s))
|
43
|
-
|
44
|
-
self.assert_(jintrospect.ispython(jintrospect))
|
45
|
-
|
46
|
-
def testIsPython22(self):
|
47
|
-
# NOTE: This will fail with AP 2.1. Would it fail for old version too?
|
48
|
-
ps = "python string"
|
49
|
-
self.assert_(jintrospect.ispython(ps))
|
50
|
-
d = {}
|
51
|
-
self.assert_(jintrospect.ispython(d))
|
52
|
-
|
53
|
-
def testStaticJavaMethods(self):
|
54
|
-
""" Instances of Java classes should not show static methods as completion choices. """
|
55
|
-
static_methods = jintrospect.getAutoCompleteList("String", {"String" : String})
|
56
|
-
self.assert_("valueOf" in static_methods, "'valueOf' missing from static method list")
|
57
|
-
instance_methods = jintrospect.getAutoCompleteList("s", {"s" : String("Test")})
|
58
|
-
self.assert_("valueOf" not in instance_methods, "'valueOf' should not be in the instance method list")
|
59
|
-
|
60
|
-
def testJavaAccessorAsProperty(self):
|
61
|
-
instance_methods = jintrospect.getAutoCompleteList("s", {"s" : String("Test")})
|
62
|
-
self.assert_("class" in instance_methods, "'class' property should be in the instance method list")
|
63
|
-
|
64
|
-
def testJavaLangRemoved(self):
|
65
|
-
object_name, argspec, tip_text = jintrospect.getCallTip('String', {'String' : 's'})
|
66
|
-
self.assertDoesNotContain(tip_text, "java.lang.")
|
67
|
-
|
68
|
-
def testPrimitiveArrayConversion(self):
|
69
|
-
"""[B, [C and [I should be replaced"""
|
70
|
-
object_name, argspec, tip_text = jintrospect.getCallTipJava('String', { 'String' : String })
|
71
|
-
self.assertDoesNotContain(tip_text, "[B")
|
72
|
-
self.assertDoesNotContain(tip_text, "[C")
|
73
|
-
self.assertDoesNotContain(tip_text, "[I")
|
74
|
-
self.assertContains(tip_text, "byte[]")
|
75
|
-
self.assertContains(tip_text, "char[]")
|
76
|
-
self.assertContains(tip_text, "int[]")
|
77
|
-
|
78
|
-
# http://code.google.com/p/jythonconsole/issues/detail?id=2
|
79
|
-
# def testMultipleStatements(self):
|
80
|
-
# command = "import sys; sys"
|
81
|
-
# list = jintrospect.getAutoCompleteList(command, locals())
|
82
|
-
# self.assert_(len(list) > 0)
|
83
|
-
|
84
|
-
# note: static methods and fields are tested in static_test_case
|
85
|
-
|
86
|
-
def assertNotEmpty(self, list):
|
87
|
-
if list == None:
|
88
|
-
self.fail("list is None")
|
89
|
-
if len(list) < 1:
|
90
|
-
self.fail("list is empty")
|
91
|
-
|
92
|
-
def assertContains(self, list, value):
|
93
|
-
try:
|
94
|
-
list.index(value)
|
95
|
-
except ValueError:
|
96
|
-
self.fail("%s does not contain %s" % (type(list).__name__, value))
|
97
|
-
|
98
|
-
def assertDoesNotContain(self, list, value):
|
99
|
-
try:
|
100
|
-
list.index(value)
|
101
|
-
self.fail("%s should contain %s" % (type(list).__name__, value))
|
102
|
-
except ValueError:
|
103
|
-
self.assert_(True)
|
104
|
-
|
105
|
-
|
106
|
-
if __name__ == '__main__':
|
107
|
-
unittest.main()
|