summaryrefslogtreecommitdiff
path: root/spec/rubyspec/core/string/inspect_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/core/string/inspect_spec.rb')
-rw-r--r--spec/rubyspec/core/string/inspect_spec.rb492
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