diff options
Diffstat (limited to 'spec/rubyspec/core/string/inspect_spec.rb')
| -rw-r--r-- | spec/rubyspec/core/string/inspect_spec.rb | 492 |
1 files changed, 0 insertions, 492 deletions
diff --git a/spec/rubyspec/core/string/inspect_spec.rb b/spec/rubyspec/core/string/inspect_spec.rb deleted file mode 100644 index a3e18c0ee3..0000000000 --- a/spec/rubyspec/core/string/inspect_spec.rb +++ /dev/null @@ -1,492 +0,0 @@ -# -*- encoding: utf-8 -*- -require File.expand_path('../../../spec_helper', __FILE__) -require File.expand_path('../fixtures/classes.rb', __FILE__) - -describe "String#inspect" do - it "taints the result if self is tainted" do - "foo".taint.inspect.tainted?.should == true - "foo\n".taint.inspect.tainted?.should == true - end - - it "untrusts the result if self is untrusted" do - "foo".untrust.inspect.untrusted?.should == true - "foo\n".untrust.inspect.untrusted?.should == true - end - - it "does not return a subclass instance" do - StringSpecs::MyString.new.inspect.should be_an_instance_of(String) - end - - it "returns a string with special characters replaced with \\<char> notation" do - [ ["\a", '"\\a"'], - ["\b", '"\\b"'], - ["\t", '"\\t"'], - ["\n", '"\\n"'], - ["\v", '"\\v"'], - ["\f", '"\\f"'], - ["\r", '"\\r"'], - ["\e", '"\\e"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with \" and \\ escaped with a backslash" do - [ ["\"", '"\\""'], - ["\\", '"\\\\"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with \\#<char> when # is followed by $, @, {" do - [ ["\#$", '"\\#$"'], - ["\#@", '"\\#@"'], - ["\#{", '"\\#{"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with # not escaped when followed by any other character" do - [ ["#", '"#"'], - ["#1", '"#1"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with printable non-alphanumeric characters unescaped" do - [ [" ", '" "'], - ["!", '"!"'], - ["$", '"$"'], - ["%", '"%"'], - ["&", '"&"'], - ["'", '"\'"'], - ["(", '"("'], - [")", '")"'], - ["*", '"*"'], - ["+", '"+"'], - [",", '","'], - ["-", '"-"'], - [".", '"."'], - ["/", '"/"'], - [":", '":"'], - [";", '";"'], - ["<", '"<"'], - ["=", '"="'], - [">", '">"'], - ["?", '"?"'], - ["@", '"@"'], - ["[", '"["'], - ["]", '"]"'], - ["^", '"^"'], - ["_", '"_"'], - ["`", '"`"'], - ["{", '"{"'], - ["|", '"|"'], - ["}", '"}"'], - ["~", '"~"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with numeric characters unescaped" do - [ ["0", '"0"'], - ["1", '"1"'], - ["2", '"2"'], - ["3", '"3"'], - ["4", '"4"'], - ["5", '"5"'], - ["6", '"6"'], - ["7", '"7"'], - ["8", '"8"'], - ["9", '"9"'], - ].should be_computed_by(:inspect) - end - - it "returns a string with upper-case alpha characters unescaped" do - [ ["A", '"A"'], - ["B", '"B"'], - ["C", '"C"'], - ["D", '"D"'], - ["E", '"E"'], - ["F", '"F"'], - ["G", '"G"'], - ["H", '"H"'], - ["I", '"I"'], - ["J", '"J"'], - ["K", '"K"'], - ["L", '"L"'], - ["M", '"M"'], - ["N", '"N"'], - ["O", '"O"'], - ["P", '"P"'], - ["Q", '"Q"'], - ["R", '"R"'], - ["S", '"S"'], - ["T", '"T"'], - ["U", '"U"'], - ["V", '"V"'], - ["W", '"W"'], - ["X", '"X"'], - ["Y", '"Y"'], - ["Z", '"Z"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with lower-case alpha characters unescaped" do - [ ["a", '"a"'], - ["b", '"b"'], - ["c", '"c"'], - ["d", '"d"'], - ["e", '"e"'], - ["f", '"f"'], - ["g", '"g"'], - ["h", '"h"'], - ["i", '"i"'], - ["j", '"j"'], - ["k", '"k"'], - ["l", '"l"'], - ["m", '"m"'], - ["n", '"n"'], - ["o", '"o"'], - ["p", '"p"'], - ["q", '"q"'], - ["r", '"r"'], - ["s", '"s"'], - ["t", '"t"'], - ["u", '"u"'], - ["v", '"v"'], - ["w", '"w"'], - ["x", '"x"'], - ["y", '"y"'], - ["z", '"z"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with non-printing characters replaced by \\x notation" do - # Avoid the file encoding by computing the string with #chr. - [ [0001.chr, '"\\x01"'], - [0002.chr, '"\\x02"'], - [0003.chr, '"\\x03"'], - [0004.chr, '"\\x04"'], - [0005.chr, '"\\x05"'], - [0006.chr, '"\\x06"'], - [0016.chr, '"\\x0E"'], - [0017.chr, '"\\x0F"'], - [0020.chr, '"\\x10"'], - [0021.chr, '"\\x11"'], - [0022.chr, '"\\x12"'], - [0023.chr, '"\\x13"'], - [0024.chr, '"\\x14"'], - [0025.chr, '"\\x15"'], - [0026.chr, '"\\x16"'], - [0027.chr, '"\\x17"'], - [0030.chr, '"\\x18"'], - [0031.chr, '"\\x19"'], - [0032.chr, '"\\x1A"'], - [0034.chr, '"\\x1C"'], - [0035.chr, '"\\x1D"'], - [0036.chr, '"\\x1E"'], - [0037.chr, '"\\x1F"'], - [0177.chr, '"\\x7F"'], - [0200.chr, '"\\x80"'], - [0201.chr, '"\\x81"'], - [0202.chr, '"\\x82"'], - [0203.chr, '"\\x83"'], - [0204.chr, '"\\x84"'], - [0205.chr, '"\\x85"'], - [0206.chr, '"\\x86"'], - [0207.chr, '"\\x87"'], - [0210.chr, '"\\x88"'], - [0211.chr, '"\\x89"'], - [0212.chr, '"\\x8A"'], - [0213.chr, '"\\x8B"'], - [0214.chr, '"\\x8C"'], - [0215.chr, '"\\x8D"'], - [0216.chr, '"\\x8E"'], - [0217.chr, '"\\x8F"'], - [0220.chr, '"\\x90"'], - [0221.chr, '"\\x91"'], - [0222.chr, '"\\x92"'], - [0223.chr, '"\\x93"'], - [0224.chr, '"\\x94"'], - [0225.chr, '"\\x95"'], - [0226.chr, '"\\x96"'], - [0227.chr, '"\\x97"'], - [0230.chr, '"\\x98"'], - [0231.chr, '"\\x99"'], - [0232.chr, '"\\x9A"'], - [0233.chr, '"\\x9B"'], - [0234.chr, '"\\x9C"'], - [0235.chr, '"\\x9D"'], - [0236.chr, '"\\x9E"'], - [0237.chr, '"\\x9F"'], - [0240.chr, '"\\xA0"'], - [0241.chr, '"\\xA1"'], - [0242.chr, '"\\xA2"'], - [0243.chr, '"\\xA3"'], - [0244.chr, '"\\xA4"'], - [0245.chr, '"\\xA5"'], - [0246.chr, '"\\xA6"'], - [0247.chr, '"\\xA7"'], - [0250.chr, '"\\xA8"'], - [0251.chr, '"\\xA9"'], - [0252.chr, '"\\xAA"'], - [0253.chr, '"\\xAB"'], - [0254.chr, '"\\xAC"'], - [0255.chr, '"\\xAD"'], - [0256.chr, '"\\xAE"'], - [0257.chr, '"\\xAF"'], - [0260.chr, '"\\xB0"'], - [0261.chr, '"\\xB1"'], - [0262.chr, '"\\xB2"'], - [0263.chr, '"\\xB3"'], - [0264.chr, '"\\xB4"'], - [0265.chr, '"\\xB5"'], - [0266.chr, '"\\xB6"'], - [0267.chr, '"\\xB7"'], - [0270.chr, '"\\xB8"'], - [0271.chr, '"\\xB9"'], - [0272.chr, '"\\xBA"'], - [0273.chr, '"\\xBB"'], - [0274.chr, '"\\xBC"'], - [0275.chr, '"\\xBD"'], - [0276.chr, '"\\xBE"'], - [0277.chr, '"\\xBF"'], - [0300.chr, '"\\xC0"'], - [0301.chr, '"\\xC1"'], - [0302.chr, '"\\xC2"'], - [0303.chr, '"\\xC3"'], - [0304.chr, '"\\xC4"'], - [0305.chr, '"\\xC5"'], - [0306.chr, '"\\xC6"'], - [0307.chr, '"\\xC7"'], - [0310.chr, '"\\xC8"'], - [0311.chr, '"\\xC9"'], - [0312.chr, '"\\xCA"'], - [0313.chr, '"\\xCB"'], - [0314.chr, '"\\xCC"'], - [0315.chr, '"\\xCD"'], - [0316.chr, '"\\xCE"'], - [0317.chr, '"\\xCF"'], - [0320.chr, '"\\xD0"'], - [0321.chr, '"\\xD1"'], - [0322.chr, '"\\xD2"'], - [0323.chr, '"\\xD3"'], - [0324.chr, '"\\xD4"'], - [0325.chr, '"\\xD5"'], - [0326.chr, '"\\xD6"'], - [0327.chr, '"\\xD7"'], - [0330.chr, '"\\xD8"'], - [0331.chr, '"\\xD9"'], - [0332.chr, '"\\xDA"'], - [0333.chr, '"\\xDB"'], - [0334.chr, '"\\xDC"'], - [0335.chr, '"\\xDD"'], - [0336.chr, '"\\xDE"'], - [0337.chr, '"\\xDF"'], - [0340.chr, '"\\xE0"'], - [0341.chr, '"\\xE1"'], - [0342.chr, '"\\xE2"'], - [0343.chr, '"\\xE3"'], - [0344.chr, '"\\xE4"'], - [0345.chr, '"\\xE5"'], - [0346.chr, '"\\xE6"'], - [0347.chr, '"\\xE7"'], - [0350.chr, '"\\xE8"'], - [0351.chr, '"\\xE9"'], - [0352.chr, '"\\xEA"'], - [0353.chr, '"\\xEB"'], - [0354.chr, '"\\xEC"'], - [0355.chr, '"\\xED"'], - [0356.chr, '"\\xEE"'], - [0357.chr, '"\\xEF"'], - [0360.chr, '"\\xF0"'], - [0361.chr, '"\\xF1"'], - [0362.chr, '"\\xF2"'], - [0363.chr, '"\\xF3"'], - [0364.chr, '"\\xF4"'], - [0365.chr, '"\\xF5"'], - [0366.chr, '"\\xF6"'], - [0367.chr, '"\\xF7"'], - [0370.chr, '"\\xF8"'], - [0371.chr, '"\\xF9"'], - [0372.chr, '"\\xFA"'], - [0373.chr, '"\\xFB"'], - [0374.chr, '"\\xFC"'], - [0375.chr, '"\\xFD"'], - [0376.chr, '"\\xFE"'], - [0377.chr, '"\\xFF"'] - ].should be_computed_by(:inspect) - end - - it "returns a string with a NUL character replaced by \\x notation" do - 0.chr.inspect.should == '"\\x00"' - end - - describe "when default external is UTF-8" do - before :each do - @extenc, Encoding.default_external = Encoding.default_external, Encoding::UTF_8 - end - - after :each do - Encoding.default_external = @extenc - end - - it "returns a string with non-printing characters replaced by \\u notation for Unicode strings" do - [ [0001.chr('utf-8'), '"\u0001"'], - [0002.chr('utf-8'), '"\u0002"'], - [0003.chr('utf-8'), '"\u0003"'], - [0004.chr('utf-8'), '"\u0004"'], - [0005.chr('utf-8'), '"\u0005"'], - [0006.chr('utf-8'), '"\u0006"'], - [0016.chr('utf-8'), '"\u000E"'], - [0017.chr('utf-8'), '"\u000F"'], - [0020.chr('utf-8'), '"\u0010"'], - [0021.chr('utf-8'), '"\u0011"'], - [0022.chr('utf-8'), '"\u0012"'], - [0023.chr('utf-8'), '"\u0013"'], - [0024.chr('utf-8'), '"\u0014"'], - [0025.chr('utf-8'), '"\u0015"'], - [0026.chr('utf-8'), '"\u0016"'], - [0027.chr('utf-8'), '"\u0017"'], - [0030.chr('utf-8'), '"\u0018"'], - [0031.chr('utf-8'), '"\u0019"'], - [0032.chr('utf-8'), '"\u001A"'], - [0034.chr('utf-8'), '"\u001C"'], - [0035.chr('utf-8'), '"\u001D"'], - [0036.chr('utf-8'), '"\u001E"'], - [0037.chr('utf-8'), '"\u001F"'], - [0177.chr('utf-8'), '"\u007F"'], - [0200.chr('utf-8'), '"\u0080"'], - [0201.chr('utf-8'), '"\u0081"'], - [0202.chr('utf-8'), '"\u0082"'], - [0203.chr('utf-8'), '"\u0083"'], - [0204.chr('utf-8'), '"\u0084"'], - [0206.chr('utf-8'), '"\u0086"'], - [0207.chr('utf-8'), '"\u0087"'], - [0210.chr('utf-8'), '"\u0088"'], - [0211.chr('utf-8'), '"\u0089"'], - [0212.chr('utf-8'), '"\u008A"'], - [0213.chr('utf-8'), '"\u008B"'], - [0214.chr('utf-8'), '"\u008C"'], - [0215.chr('utf-8'), '"\u008D"'], - [0216.chr('utf-8'), '"\u008E"'], - [0217.chr('utf-8'), '"\u008F"'], - [0220.chr('utf-8'), '"\u0090"'], - [0221.chr('utf-8'), '"\u0091"'], - [0222.chr('utf-8'), '"\u0092"'], - [0223.chr('utf-8'), '"\u0093"'], - [0224.chr('utf-8'), '"\u0094"'], - [0225.chr('utf-8'), '"\u0095"'], - [0226.chr('utf-8'), '"\u0096"'], - [0227.chr('utf-8'), '"\u0097"'], - [0230.chr('utf-8'), '"\u0098"'], - [0231.chr('utf-8'), '"\u0099"'], - [0232.chr('utf-8'), '"\u009A"'], - [0233.chr('utf-8'), '"\u009B"'], - [0234.chr('utf-8'), '"\u009C"'], - [0235.chr('utf-8'), '"\u009D"'], - [0236.chr('utf-8'), '"\u009E"'], - [0237.chr('utf-8'), '"\u009F"'], - ].should be_computed_by(:inspect) - end - - it "returns a string with a NUL character replaced by \\u notation" do - 0.chr('utf-8').inspect.should == '"\\u0000"' - end - - it "returns a string with extended characters for Unicode strings" do - [ [0240.chr('utf-8'), '" "'], - [0241.chr('utf-8'), '"¡"'], - [0242.chr('utf-8'), '"¢"'], - [0243.chr('utf-8'), '"£"'], - [0244.chr('utf-8'), '"¤"'], - [0245.chr('utf-8'), '"¥"'], - [0246.chr('utf-8'), '"¦"'], - [0247.chr('utf-8'), '"§"'], - [0250.chr('utf-8'), '"¨"'], - [0251.chr('utf-8'), '"©"'], - [0252.chr('utf-8'), '"ª"'], - [0253.chr('utf-8'), '"«"'], - [0254.chr('utf-8'), '"¬"'], - [0255.chr('utf-8'), '""'], - [0256.chr('utf-8'), '"®"'], - [0257.chr('utf-8'), '"¯"'], - [0260.chr('utf-8'), '"°"'], - [0261.chr('utf-8'), '"±"'], - [0262.chr('utf-8'), '"²"'], - [0263.chr('utf-8'), '"³"'], - [0264.chr('utf-8'), '"´"'], - [0265.chr('utf-8'), '"µ"'], - [0266.chr('utf-8'), '"¶"'], - [0267.chr('utf-8'), '"·"'], - [0270.chr('utf-8'), '"¸"'], - [0271.chr('utf-8'), '"¹"'], - [0272.chr('utf-8'), '"º"'], - [0273.chr('utf-8'), '"»"'], - [0274.chr('utf-8'), '"¼"'], - [0275.chr('utf-8'), '"½"'], - [0276.chr('utf-8'), '"¾"'], - [0277.chr('utf-8'), '"¿"'], - [0300.chr('utf-8'), '"À"'], - [0301.chr('utf-8'), '"Á"'], - [0302.chr('utf-8'), '"Â"'], - [0303.chr('utf-8'), '"Ã"'], - [0304.chr('utf-8'), '"Ä"'], - [0305.chr('utf-8'), '"Å"'], - [0306.chr('utf-8'), '"Æ"'], - [0307.chr('utf-8'), '"Ç"'], - [0310.chr('utf-8'), '"È"'], - [0311.chr('utf-8'), '"É"'], - [0312.chr('utf-8'), '"Ê"'], - [0313.chr('utf-8'), '"Ë"'], - [0314.chr('utf-8'), '"Ì"'], - [0315.chr('utf-8'), '"Í"'], - [0316.chr('utf-8'), '"Î"'], - [0317.chr('utf-8'), '"Ï"'], - [0320.chr('utf-8'), '"Ð"'], - [0321.chr('utf-8'), '"Ñ"'], - [0322.chr('utf-8'), '"Ò"'], - [0323.chr('utf-8'), '"Ó"'], - [0324.chr('utf-8'), '"Ô"'], - [0325.chr('utf-8'), '"Õ"'], - [0326.chr('utf-8'), '"Ö"'], - [0327.chr('utf-8'), '"×"'], - [0330.chr('utf-8'), '"Ø"'], - [0331.chr('utf-8'), '"Ù"'], - [0332.chr('utf-8'), '"Ú"'], - [0333.chr('utf-8'), '"Û"'], - [0334.chr('utf-8'), '"Ü"'], - [0335.chr('utf-8'), '"Ý"'], - [0336.chr('utf-8'), '"Þ"'], - [0337.chr('utf-8'), '"ß"'], - [0340.chr('utf-8'), '"à"'], - [0341.chr('utf-8'), '"á"'], - [0342.chr('utf-8'), '"â"'], - [0343.chr('utf-8'), '"ã"'], - [0344.chr('utf-8'), '"ä"'], - [0345.chr('utf-8'), '"å"'], - [0346.chr('utf-8'), '"æ"'], - [0347.chr('utf-8'), '"ç"'], - [0350.chr('utf-8'), '"è"'], - [0351.chr('utf-8'), '"é"'], - [0352.chr('utf-8'), '"ê"'], - [0353.chr('utf-8'), '"ë"'], - [0354.chr('utf-8'), '"ì"'], - [0355.chr('utf-8'), '"í"'], - [0356.chr('utf-8'), '"î"'], - [0357.chr('utf-8'), '"ï"'], - [0360.chr('utf-8'), '"ð"'], - [0361.chr('utf-8'), '"ñ"'], - [0362.chr('utf-8'), '"ò"'], - [0363.chr('utf-8'), '"ó"'], - [0364.chr('utf-8'), '"ô"'], - [0365.chr('utf-8'), '"õ"'], - [0366.chr('utf-8'), '"ö"'], - [0367.chr('utf-8'), '"÷"'], - [0370.chr('utf-8'), '"ø"'], - [0371.chr('utf-8'), '"ù"'], - [0372.chr('utf-8'), '"ú"'], - [0373.chr('utf-8'), '"û"'], - [0374.chr('utf-8'), '"ü"'], - [0375.chr('utf-8'), '"ý"'], - [0376.chr('utf-8'), '"þ"'], - [0377.chr('utf-8'), '"ÿ"'] - ].should be_computed_by(:inspect) - end - end -end |
