Files
atom/bundles/ruby-on-rails.tmbundle/Support/test/test_buffer.rb
2012-09-28 17:28:25 -06:00

118 lines
3.1 KiB
Ruby

require File.dirname(__FILE__) + '/test_helper'
require 'text_mate_mock'
require 'rails/buffer'
TextMate.line_number = '1'
TextMate.column_number = '1'
TextMate.selected_text = <<-END
def my_method
puts 'hi'
# some comment, 'hi'
end
def my_other_method
x = y + z
# another comment
end
def index
respond_to do |wants|
wants.html { }
wants.js { }
wants.css { }
end
respond_to { | wacky |
wacky.wackier { }
}
end
def edit
end
END
class BufferTest < Test::Unit::TestCase
def test_find
b = Buffer.new(TextMate.selected_text)
match = b.find { /'(.+)'/ }
assert_equal [1, "hi"], match
match = b.find(:from => 2, :to => 1, :direction => :backward) { /'(.+)'/ }
assert_equal [2, "hi"], match
match = b.find(:from => 2, :to => 1, :direction => :backward) { /my_method/ }
assert_nil match
end
def test_find_method
b = Buffer.new(TextMate.selected_text)
assert_equal [0, 'my_method'], b.find_method
b.line_number = 4
assert_equal [0, 'my_method'], b.find_method
b.line_number = 5
assert_equal [5, 'my_other_method'], b.find_method
end
def test_find_respond_to_format
b = Buffer.new(TextMate.selected_text)
assert_equal nil, b.find_respond_to_format
b.line_number = 10
assert_equal nil, b.find_respond_to_format
b.line_number = 11
assert_equal [12, 'html'], b.find_respond_to_format
b.line_number = 12
assert_equal [12, 'html'], b.find_respond_to_format
b.line_number = 13
assert_equal [13, 'js'], b.find_respond_to_format
b.line_number = 14
assert_equal [14, 'css'], b.find_respond_to_format
b.line_number = 15
assert_equal [14, 'css'], b.find_respond_to_format
b.line_number = 16
assert_equal [17, 'wackier'], b.find_respond_to_format
b.line_number = 17
assert_equal [17, 'wackier'], b.find_respond_to_format
b.line_number = 18
assert_equal [17, 'wackier'], b.find_respond_to_format
b.line_number = 19
assert_equal [17, 'wackier'], b.find_respond_to_format
b.line_number = 20
assert_equal [17, 'wackier'], b.find_respond_to_format
b.line_number = 21
assert_equal nil, b.find_respond_to_format
end
def test_find_multiple_matches
b = Buffer.new(TextMate.selected_text)
match = b.find { /^\s*x = (\w) \+ (\w)\s*$/ }
assert_equal [6, 'y', 'z'], match
b = Buffer.new(TextMate.selected_text)
match = b.find { /^\s*x = (\w) \+ (\w)(\w?)\s*$/ }
assert_equal [6, 'y', 'z', ''], match
end
def test_find_nearest_string_or_symbol
b = Buffer.new "String :with => 'strings', :and, :symbols"
match = b.find_nearest_string_or_symbol
assert_equal ["with", 8], match
b.column_number = 8
match = b.find_nearest_string_or_symbol
assert_equal ["with", 8], match
b.column_number = 25
match = b.find_nearest_string_or_symbol
assert_equal ["strings", 17], match
b.column_number = 37
match = b.find_nearest_string_or_symbol
assert_equal ["symbols", 34], match
b = Buffer.new "String without symbols or strings"
match = b.find_nearest_string_or_symbol
assert_nil match
end
end