Sha256: dc1e2e5889db8ae27c004a2fbdce4072058bc0ccbe805c36ffd89e32c117ec0b

Contents?: true

Size: 1.99 KB

Versions: 59

Compression:

Stored size: 1.99 KB

Contents

require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper'
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/common'

describe "Dir.mkdir" do
  it "creates the named directory with the given permissions" do
    DirSpecs.clear_dirs

    begin
      File.exist?('nonexisting').should == false
      Dir.mkdir 'nonexisting'
      File.exist?('nonexisting').should == true
      platform_is_not :windows do
        Dir.mkdir 'default_perms'
        a = File.stat('default_perms').mode
        Dir.mkdir 'reduced', (a - 1)
        File.stat('reduced').mode.should_not == a
      end
      platform_is :windows do
        Dir.mkdir 'default_perms', 0666
        a = File.stat('default_perms').mode
        Dir.mkdir 'reduced', 0444
        File.stat('reduced').mode.should_not == a
      end

      Dir.mkdir('always_returns_0').should == 0
      platform_is_not(:windows) do
        File.chmod(0777, "nonexisting","default_perms","reduced","always_returns_0")
      end
      platform_is_not(:windows) do
        File.chmod(0644, "nonexisting","default_perms","reduced","always_returns_0")
      end
    ensure
      DirSpecs.clear_dirs
    end
  end

unless System.get_property('platform') == 'WINDOWS'
  it "raises a SystemCallError when lacking adequate permissions in the parent dir" do
    # In case something happened it it didn't get cleaned up.
      if File.exist? 'noperms'
        File.chmod 0777, "noperms"
        FileUtils.rm_rf 'noperms' 
      end

    Dir.mkdir 'noperms', 0000

    lambda { Dir.mkdir 'noperms/subdir' }.should raise_error(SystemCallError) 

    system 'chmod 0777 noperms'
    platform_is_not :windows do
      File.chmod 0777, "noperms"
    end
    platform_is :windows do
      File.chmod 0666, "noperms"
    end
    Dir.rmdir 'noperms'
  end
end
  it "raises a SystemCallError if any of the directories in the path before the last does not exist" do
    lambda { Dir.mkdir "#{DirSpecs.nonexistent}/subdir" }.should raise_error(SystemCallError)
  end
end

Version data entries

59 entries across 59 versions & 1 rubygems

Version Path
rhodes-3.1.1 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.1.beta spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0.beta.5 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0.beta.4 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0.beta.3 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0.beta.2 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.1.0.beta.1 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.2 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.2.beta.1 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.8 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.7 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.6 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.5 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.4 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.3 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.1.beta.2 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.0 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb
rhodes-3.0.0.beta.7 spec/framework_spec/app/spec/core/dir/mkdir_spec.rb