minecraft 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +15 -0
- data/README.md +12 -0
- data/bin/minecraft +1 -0
- data/lib/minecraft/commands.rb +440 -107
- data/lib/minecraft/data.rb +7 -1
- data/lib/minecraft/extensions.rb +163 -55
- data/lib/minecraft/server.rb +2 -0
- data/lib/minecraft/tools.rb +9 -0
- data/lib/minecraft/version.rb +1 -1
- data/test/commands_test.rb +253 -12
- data/test/extensions_test.rb +48 -0
- data/test/helper.rb +4 -1
- metadata +2 -2
data/test/extensions_test.rb
CHANGED
@@ -2,6 +2,25 @@ require "helper"
|
|
2
2
|
require "minecraft"
|
3
3
|
|
4
4
|
class ExtensionsTest < Test
|
5
|
+
# Coloured line testing.
|
6
|
+
sandbox_test "should colour server side lines properly" do
|
7
|
+
@ext = Minecraft::Extensions.new(StringIO.new, {})
|
8
|
+
result = "\033[0;37m2011-08-21 13:45:13\033[0m [INFO] Starting minecraft server version Beta 1.7.3"
|
9
|
+
assert_equal result, @ext.colour("2011-08-21 13:45:13 [INFO] Starting minecraft server version Beta 1.7.3")
|
10
|
+
|
11
|
+
result = "\033[0;37m2011-08-21 13:45:28\033[0m [INFO] <\033[1;34mbasicxman\033[0m> \033[1;33m!list\033[0m"
|
12
|
+
assert_equal result, @ext.colour("2011-08-21 13:45:28 [INFO] <basicxman> !list")
|
13
|
+
|
14
|
+
result = "\033[0;37m2011-08-21 13:45:35\033[0m [INFO] <\033[1;34mbasicxman\033[0m> \033[1;33m!hop basicxman\033[0m"
|
15
|
+
assert_equal result, @ext.colour("2011-08-21 13:45:35 [INFO] <basicxman> !hop basicxman")
|
16
|
+
|
17
|
+
result = "\033[0;37m2011-08-21 14:03:10\033[0m [INFO] \033[1;30mbasicxman lost connection: disconnect.quitting\033[0m"
|
18
|
+
assert_equal result, @ext.colour("2011-08-21 14:03:10 [INFO] basicxman lost connection: disconnect.quitting")
|
19
|
+
|
20
|
+
result = "\033[0;37m2011-08-21 13:53:09\033[0m [INFO] \033[1;36mCONSOLE:\033[0m Forcing save.."
|
21
|
+
assert_equal result, @ext.colour("2011-08-21 13:53:09 [INFO] CONSOLE: Forcing save..")
|
22
|
+
end
|
23
|
+
|
5
24
|
# call_comamnd testing.
|
6
25
|
sandbox_test "should call a command for a regular user" do
|
7
26
|
@ext = Minecraft::Extensions.new(StringIO.new, {})
|
@@ -61,4 +80,33 @@ class ExtensionsTest < Test
|
|
61
80
|
@ext.call_command("basicxman", "morning")
|
62
81
|
refute_match "not a", @ext.server.string
|
63
82
|
end
|
83
|
+
|
84
|
+
sandbox_test "should remove excess arguments" do
|
85
|
+
@ext = Minecraft::Extensions.new(StringIO.new, {})
|
86
|
+
@ext.call_command("basicxman", "help", "foo", "bar")
|
87
|
+
refute_empty @ext.server.string
|
88
|
+
|
89
|
+
@ext.call_command("basicxman", "day", "foo")
|
90
|
+
refute_empty @ext.server.string
|
91
|
+
end
|
92
|
+
|
93
|
+
# Command valiation testing.
|
94
|
+
sandbox_test "should print an arguments error if not enough arguments are given" do
|
95
|
+
ts, $stderr = $stderr, StringIO.new
|
96
|
+
@ext = Minecraft::Extensions.new(StringIO.new, {})
|
97
|
+
@ext.ops = ["basicxman"]
|
98
|
+
@ext.call_command("basicxman", "give")
|
99
|
+
assert_match "at least one argument", @ext.server.string
|
100
|
+
@ext.server.string = ""
|
101
|
+
|
102
|
+
@ext.call_command("basicxman", "kit")
|
103
|
+
assert_match "Expected", @ext.server.string
|
104
|
+
assert_match "group", @ext.server.string
|
105
|
+
@ext.server.string = ""
|
106
|
+
|
107
|
+
@ext.call_command("basicxman", "hop")
|
108
|
+
assert_match "Expected", @ext.server.string
|
109
|
+
assert_match "target user", @ext.server.string
|
110
|
+
$stderr = ts
|
111
|
+
end
|
64
112
|
end
|
data/test/helper.rb
CHANGED
@@ -10,15 +10,18 @@ require "turn"
|
|
10
10
|
|
11
11
|
module Minecraft
|
12
12
|
class Extensions
|
13
|
-
attr_accessor :commands, :users, :ops, :hops, :counter, :server, :kickvotes, :last_kick_vote, :uptime, :timers, :shortcuts, :userlog, :userpoints, :vote_threshold
|
13
|
+
attr_accessor :commands, :users, :ops, :hops, :counter, :server, :kickvotes, :last_kick_vote, :uptime, :timers, :shortcuts, :userlog, :userpoints, :vote_threshold, :userdnd, :welcome_message, :memos, :todo_items
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
class Test < MiniTest::Unit::TestCase
|
18
|
+
# Standard test.
|
18
19
|
def self.test(name, &block)
|
19
20
|
define_method("test_#{name.gsub(/\W/, '_')}", block)
|
20
21
|
end
|
21
22
|
|
23
|
+
# Sandbox test which creates a sandboxed environment for a mocked Minecraft
|
24
|
+
# server to run in.
|
22
25
|
def self.sandbox_test(name, &block)
|
23
26
|
p = Proc.new do
|
24
27
|
FileUtils.mkdir("mc") unless File.exists? "mc"
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: minecraft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Andrew Horsman
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-29 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|