mirror of
https://github.com/atom/atom.git
synced 2026-02-13 08:04:56 -05:00
118 lines
3.1 KiB
Ruby
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 |