summaryrefslogtreecommitdiff
path: root/spec/ruby/core/dir
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2021-02-27 13:00:26 +0100
committerBenoit Daloze <eregontp@gmail.com>2021-02-27 13:00:26 +0100
commit36dde35e029c7a6607e6c674062ce6fc7a51c0bd (patch)
tree47f9c820a93d5b9a68f7e903cc01ee607913e2dd /spec/ruby/core/dir
parentdbea0be13dc1f44833eca43a73f3ab898fa27c15 (diff)
Update to ruby/spec@37e52e5
Diffstat (limited to 'spec/ruby/core/dir')
-rw-r--r--spec/ruby/core/dir/children_spec.rb14
-rw-r--r--spec/ruby/core/dir/each_child_spec.rb12
-rw-r--r--spec/ruby/core/dir/entries_spec.rb13
-rw-r--r--spec/ruby/core/dir/foreach_spec.rb12
4 files changed, 45 insertions, 6 deletions
diff --git a/spec/ruby/core/dir/children_spec.rb b/spec/ruby/core/dir/children_spec.rb
index e0325a24b8..f890f54eb4 100644
--- a/spec/ruby/core/dir/children_spec.rb
+++ b/spec/ruby/core/dir/children_spec.rb
@@ -100,10 +100,18 @@ ruby_version_is "2.6" do
a.should == %w|.dotfile.ext directory|
end
- it "accepts an options Hash" do
+ it "accepts an encoding keyword for the encoding of the entries" do
@dir = Dir.new("#{DirSpecs.mock_dir}/deeply/nested", encoding: "utf-8")
- a = @dir.children.sort
- a.should == %w|.dotfile.ext directory|
+ dirs = @dir.to_a.sort
+ dirs.each { |d| d.encoding.should == Encoding::UTF_8 }
+ end
+
+ ruby_version_is ""..."2.7" do
+ it "accepts nil options" do
+ @dir = Dir.new("#{DirSpecs.mock_dir}/deeply/nested", nil)
+ dirs = @dir.to_a.sort
+ dirs.each { |d| d.encoding.should == Encoding.find("filesystem") }
+ end
end
it "returns children encoded with the filesystem encoding by default" do
diff --git a/spec/ruby/core/dir/each_child_spec.rb b/spec/ruby/core/dir/each_child_spec.rb
index 93b4a1aec1..684f42acc0 100644
--- a/spec/ruby/core/dir/each_child_spec.rb
+++ b/spec/ruby/core/dir/each_child_spec.rb
@@ -10,6 +10,18 @@ describe "Dir.each_child" do
DirSpecs.delete_mock_dirs
end
+ it "accepts an encoding keyword for the encoding of the entries" do
+ dirs = Dir.each_child("#{DirSpecs.mock_dir}/deeply/nested", encoding: "utf-8").to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding::UTF_8}
+ end
+
+ ruby_version_is ""..."2.7" do
+ it "accepts nil options" do
+ dirs = Dir.each_child("#{DirSpecs.mock_dir}/deeply/nested", nil).to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding.find("filesystem")}
+ end
+ end
+
it "yields all names in an existing directory to the provided block" do
a, b = [], []
diff --git a/spec/ruby/core/dir/entries_spec.rb b/spec/ruby/core/dir/entries_spec.rb
index 33568b6fc4..9aa58657db 100644
--- a/spec/ruby/core/dir/entries_spec.rb
+++ b/spec/ruby/core/dir/entries_spec.rb
@@ -35,9 +35,16 @@ describe "Dir.entries" do
Dir.entries(p)
end
- it "accepts an options Hash" do
- a = Dir.entries("#{DirSpecs.mock_dir}/deeply/nested", encoding: "utf-8").sort
- a.should == %w|. .. .dotfile.ext directory|
+ it "accepts an encoding keyword for the encoding of the entries" do
+ dirs = Dir.entries("#{DirSpecs.mock_dir}/deeply/nested", encoding: "utf-8").to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding::UTF_8}
+ end
+
+ ruby_version_is ""..."2.7" do
+ it "accepts nil options" do
+ dirs = Dir.entries("#{DirSpecs.mock_dir}/deeply/nested", nil).to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding.find("filesystem")}
+ end
end
it "returns entries encoded with the filesystem encoding by default" do
diff --git a/spec/ruby/core/dir/foreach_spec.rb b/spec/ruby/core/dir/foreach_spec.rb
index 1560b85f8a..c3ddb27a84 100644
--- a/spec/ruby/core/dir/foreach_spec.rb
+++ b/spec/ruby/core/dir/foreach_spec.rb
@@ -39,6 +39,18 @@ describe "Dir.foreach" do
Dir.foreach(DirSpecs.mock_dir).to_a.sort.should == DirSpecs.expected_paths
end
+ it "accepts an encoding keyword for the encoding of the entries" do
+ dirs = Dir.foreach("#{DirSpecs.mock_dir}/deeply/nested", encoding: "utf-8").to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding::UTF_8}
+ end
+
+ ruby_version_is ""..."2.7" do
+ it "accepts nil options" do
+ dirs = Dir.foreach("#{DirSpecs.mock_dir}/deeply/nested", nil).to_a.sort
+ dirs.each {|dir| dir.encoding.should == Encoding.find("filesystem")}
+ end
+ end
+
describe "when no block is given" do
it "returns an Enumerator" do
Dir.foreach(DirSpecs.mock_dir).should be_an_instance_of(Enumerator)