1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00
jashkenas--coffeescript/test/strings.coffee

144 lines
2.1 KiB
CoffeeScript
Raw Normal View History

2010-12-29 00:48:54 -05:00
# String Literals
# ---------------
# TODO: refactor string literal tests
2011-01-03 04:17:00 -05:00
# TODO: add indexing and method invocation tests: "string"["toString"] is String::toString, "string".toString() is "string"
2010-12-29 00:48:54 -05:00
# * Strings
# * Heredocs
2010-12-30 22:48:31 -05:00
test "backslash escapes", ->
eq "\\/\\\\", /\/\\/.source
2010-12-29 00:48:54 -05:00
eq '(((dollars)))', '\(\(\(dollars\)\)\)'
eq 'one two three', "one
two
three"
eq "four five", 'four
five'
2013-11-17 23:32:15 -05:00
test "#3229, multine strings", ->
eq 'one
two', 'one two'
eq "one
two", 'one two'
eq 'a \
b\
c \
d', 'a bc d'
eq "a \
b\
c \
d", 'a bc d'
eq 'one
two', 'one two'
eq "one
two", 'one two'
eq '
a
b
', 'a b'
eq "
a
b
", 'a b'
eq "interpolation #{1}
follows #{2} \
too #{3}\
!", 'interpolation 1 follows 2 too 3!'
2013-11-18 10:25:11 -05:00
eq "a #{
'string ' + "inside
interpolation"
}", "a string inside interpolation"
eq '
indentation
doesn\'t
matter', 'indentation doesn\'t matter'
2013-11-17 23:32:15 -05:00
2010-12-29 00:48:54 -05:00
#647
eq "''Hello, World\\''", '''
'\'Hello, World\\\''
'''
eq '""Hello, World\\""', """
"\"Hello, World\\\""
"""
eq 'Hello, World\n', '''
Hello, World\
'''
a = """
basic heredoc
on two lines
"""
ok a is "basic heredoc\non two lines"
a = '''
a
"b
c
'''
ok a is "a\n \"b\nc"
a = """
a
b
c
"""
ok a is "a\n b\n c"
a = '''one-liner'''
ok a is 'one-liner'
a = """
out
here
"""
ok a is "out\nhere"
a = '''
a
b
c
'''
ok a is " a\n b\nc"
a = '''
a
b c
'''
ok a is "a\n\n\nb c"
a = '''more"than"one"quote'''
ok a is 'more"than"one"quote'
a = '''here's an apostrophe'''
ok a is "here's an apostrophe"
# The indentation detector ignores blank lines without trailing whitespace
a = """
one
two
"""
ok a is "one\ntwo\n"
eq ''' line 0
should not be relevant
to the indent level
2013-11-18 11:26:48 -05:00
''', ' line 0\nshould not be relevant\n to the indent level'
2010-12-29 00:48:54 -05:00
eq ''' '\\\' ''', " '\\' "
eq """ "\\\" """, ' "\\" '
eq ''' <- keep these spaces -> ''', ' <- keep these spaces -> '
2011-01-15 10:57:50 -05:00
test "#1046, empty string interpolations", ->
eq "#{ }", ''