aboutsummaryrefslogtreecommitdiffstats
path: root/spec/rubyspec/library/getoptlong/ordering_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/rubyspec/library/getoptlong/ordering_spec.rb')
-rw-r--r--spec/rubyspec/library/getoptlong/ordering_spec.rb38
1 files changed, 38 insertions, 0 deletions
diff --git a/spec/rubyspec/library/getoptlong/ordering_spec.rb b/spec/rubyspec/library/getoptlong/ordering_spec.rb
new file mode 100644
index 0000000000..e445de2255
--- /dev/null
+++ b/spec/rubyspec/library/getoptlong/ordering_spec.rb
@@ -0,0 +1,38 @@
+require File.expand_path('../../../spec_helper', __FILE__)
+require 'getoptlong'
+
+describe "GetoptLong#ordering=" do
+ it "raises an ArgumentError if called after processing has started" do
+ argv [ "--size", "10k", "--verbose" ] do
+ opts = GetoptLong.new([ '--size', GetoptLong::REQUIRED_ARGUMENT ],
+ [ '--verbose', GetoptLong::NO_ARGUMENT ])
+ opts.quiet = true
+ opts.get
+
+ lambda {
+ opts.ordering = GetoptLong::PERMUTE
+ }.should raise_error(ArgumentError)
+ end
+ end
+
+ it "raises an ArgumentError if given an invalid value" do
+ opts = GetoptLong.new
+
+ lambda {
+ opts.ordering = 12345
+ }.should raise_error(ArgumentError)
+ end
+
+ it "does not allow changing ordering to PERMUTE if ENV['POSIXLY_CORRECT'] is set" do
+ begin
+ old_env_value = ENV['POSIXLY_CORRECT']
+ ENV['POSIXLY_CORRECT'] = ""
+
+ opts = GetoptLong.new
+ opts.ordering = GetoptLong::PERMUTE
+ opts.ordering.should == GetoptLong::REQUIRE_ORDER
+ ensure
+ ENV['POSIXLY_CORRECT'] = old_env_value
+ end
+ end
+end