Sha256: 984f9aad7ba0b791340b2e609c6110196798672b48cfe8e0a3e28ff58aa27105

Contents?: true

Size: 1.62 KB

Versions: 83

Compression:

Stored size: 1.62 KB

Contents

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

describe "File.umask" do
  before :each do
    @orig_umask = File.umask
    @file = 'test.txt'
    File.open(@file, 'w') {}
  end

  after :each do
    File.delete(@file) if File.exists?(@file)
    @file = nil
    File.umask(@orig_umask)
  end

  it "return a Fixnum" do
    File.umask.class.should == Fixnum
  end

  it "umask should return the current umask value for the process" do
    File.umask(022)
    File.umask(006).should == 022
    File.umask.should == 006
  end

  it "invokes to_int on non-integer argument" do
    (obj = mock(022)).should_receive(:to_int).any_number_of_times.and_return(022)
    File.umask(obj)
    File.umask(obj).should == 022
  end

  it "always succeeds with any integer values" do
    vals = [-2**30, -2**16, -2**8, -2,
      -1.5, -1, 0.5, 0, 1, 2, 7.77777, 16, 32, 64, 2**8, 2**16, 2**30]
    vals.each { |v|
      lambda { File.umask(v) }.should_not raise_error
    }
  end

  it "raises ArgumentError when more than one argument is provided" do
    lambda { File.umask(022, 022) }.should raise_error(ArgumentError)
  end

  platform_is :windows do
    it "Returns the current umask value for this process. (basic)" do
      File.umask.should == 0
    end

    # The value used here is the value of _S_IWRITE.
    it "Returns the current umask value for this process." do
      File.umask(0000200)
      File.umask.should == 0000200
    end

    # FIXME: wtf?
    it "raises an exception if the arguments are wrong type or are the incorect number of arguments " do
      File.umask(0006)
      File.umask.should == 0
    end
  end
end

Version data entries

83 entries across 83 versions & 1 rubygems

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