forked from ruby-debug/ruby-debug-ide
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathxml_printer_test.rb
More file actions
106 lines (85 loc) · 2.51 KB
/
Copy pathxml_printer_test.rb
File metadata and controls
106 lines (85 loc) · 2.51 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
require 'test/unit'
require 'ruby-debug-ide'
class XmlPrinterTest < Test::Unit::TestCase
def teardown
Debugger.xml_debug = false
end
def test_print_msg
interface = MockInterface.new
printer = Debugger::XmlPrinter.new(interface)
printer.print_msg('%s test', 'message')
assert_equal(['<message>message test</message>'], interface.data)
end
def test_print_msg_with_debug
Debugger.xml_debug = true
interface = MockInterface.new
printer = Debugger::XmlPrinter.new(interface)
printer.print_msg('%s test', 'message')
expected = ["<message>message test</message>"]
assert_equal(expected, interface.data)
end
def test_print_debug
Debugger.xml_debug = true
interface = MockInterface.new
printer = Debugger::XmlPrinter.new(interface)
printer.print_debug('%s test', 'debug message 1')
printer.print_debug('%s test', 'debug message 2')
expected = [
"<message debug='true'>debug message 1 test</message>",
"<message debug='true'>debug message 2 test</message>"]
assert_equal(expected, interface.data)
end
def test_print_frames
interface = MockInterface.new
printer = Debugger::XmlPrinter.new(interface)
Debugger.start
begin
context = MockContext.new(2)
printer.print_frames(context, 0)
ensure
Debugger.stop
end
test_path = File.join(Dir.pwd, 'test.rb')
expected = [
"<frames>",
"<frame no=\"1\" file=\"#{test_path}\" line=\"0\" current='true' />",
"<frame no=\"2\" file=\"#{test_path}\" line=\"10\" />",
"</frames>"]
assert_equal(expected, interface.data)
end
def test_print_at_line
interface = MockInterface.new
printer = Debugger::XmlPrinter.new(interface)
Debugger.start
begin
printer.print_at_line(Debugger.current_context,'test.rb', 1)
ensure
Debugger.stop
end
test_path = File.join(Dir.pwd, 'test.rb')
#TODO investigate
expected = ["<suspended file=\"#{test_path}\" line=\"1\" threadId=\"1\" frames=\"#{Debugger::FRONT_END == 'debase' ? 0 : 4}\"/>"]
assert_equal(expected, interface.data)
end
class MockContext < Debugger::Context
attr_accessor :stack_size
def initialize(stack_size)
@stack_size = stack_size
end
def frame_file(id)
"test.rb"
end
def frame_line(id)
id * 10
end
end
class MockInterface
attr_accessor :data
def initialize
@data = []
end
def print(*args)
@data << format(*args)
end
end
end