Skip to content

Commit

Permalink
Add more cases for File.fnmatch specs
Browse files Browse the repository at this point in the history
  • Loading branch information
jc00ke committed Nov 9, 2014
1 parent a7b8098 commit 2126710
Showing 1 changed file with 44 additions and 2 deletions.
46 changes: 44 additions & 2 deletions spec/ruby/core/file/shared/fnmatch.rb
Expand Up @@ -12,8 +12,50 @@
File.send(@method, 'c{at,ub}s', 'c{at,ub}s').should == true
end

it "supports { } patterns when File::FNM_EXTGLOB is passed" do
File.send(@method, 'c{at,ub}s', 'cats', File::FNM_EXTGLOB).should == true
it "supports some { } patterns when File::FNM_EXTGLOB is passed" do
File.send(@method, "{a,b}", "a", File::FNM_EXTGLOB).should == true
File.send(@method, "{a,b}", "b", File::FNM_EXTGLOB).should == true
File.send(@method, "c{at,ub}s", "cats", File::FNM_EXTGLOB).should == true
File.send(@method, "c{at,ub}s", "cubs", File::FNM_EXTGLOB).should == true
File.send(@method, "-c{at,ub}s-", "-cats-", File::FNM_EXTGLOB).should == true
File.send(@method, "-c{at,ub}s-", "-cubs-", File::FNM_EXTGLOB).should == true
File.send(@method, "{a,b,c}{d,e,f}{g,h}", "adg", File::FNM_EXTGLOB).should == true
File.send(@method, "{a,b,c}{d,e,f}{g,h}", "bdg", File::FNM_EXTGLOB).should == true
File.send(@method, "{a,b,c}{d,e,f}{g,h}", "ceh", File::FNM_EXTGLOB).should == true
File.send(@method, "{aa,bb,cc,dd}", "aa", File::FNM_EXTGLOB).should == true
File.send(@method, "{aa,bb,cc,dd}", "bb", File::FNM_EXTGLOB).should == true
File.send(@method, "{aa,bb,cc,dd}", "cc", File::FNM_EXTGLOB).should == true
File.send(@method, "{aa,bb,cc,dd}", "dd", File::FNM_EXTGLOB).should == true
File.send(@method, "{1,5{a,b{c,d}}}", "1", File::FNM_EXTGLOB).should == true
File.send(@method, "{1,5{a,b{c,d}}}", "5a", File::FNM_EXTGLOB).should == true
File.send(@method, "{1,5{a,b{c,d}}}", "5bc", File::FNM_EXTGLOB).should == true
File.send(@method, "{1,5{a,b{c,d}}}", "5bd", File::FNM_EXTGLOB).should == true
File.send(@method, "\\\\{a\\,b,b\\}c}", "\\a,b", File::FNM_EXTGLOB).should == true
File.send(@method, "\\\\{a\\,b,b\\}c}", "\\b}c", File::FNM_EXTGLOB).should == true

end

it "doesn't support some { } patterns even when File::FNM_EXTGLOB is passed" do
File.send(@method, "a{0..3}b", "a0b", File::FNM_EXTGLOB).should == false
File.send(@method, "a{0..3}b", "a1b", File::FNM_EXTGLOB).should == false
File.send(@method, "a{0..3}b", "a2b", File::FNM_EXTGLOB).should == false
File.send(@method, "a{0..3}b", "a3b", File::FNM_EXTGLOB).should == false
File.send(@method, "{0..12}", "0", File::FNM_EXTGLOB).should == false
File.send(@method, "{0..12}", "6", File::FNM_EXTGLOB).should == false
File.send(@method, "{0..12}", "12", File::FNM_EXTGLOB).should == false
File.send(@method, "{3..-2}", "3", File::FNM_EXTGLOB).should == false
File.send(@method, "{3..-2}", "0", File::FNM_EXTGLOB).should == false
File.send(@method, "{3..-2}", "-2", File::FNM_EXTGLOB).should == false
File.send(@method, "{a..g}", "a", File::FNM_EXTGLOB).should == false
File.send(@method, "{a..g}", "d", File::FNM_EXTGLOB).should == false
File.send(@method, "{a..g}", "g", File::FNM_EXTGLOB).should == false
File.send(@method, "{g..a}", "a", File::FNM_EXTGLOB).should == false
File.send(@method, "{g..a}", "d", File::FNM_EXTGLOB).should == false
File.send(@method, "{g..a}", "g", File::FNM_EXTGLOB).should == false
File.send(@method, "escaping: {{,\\,,\\},\\{}", "escaping: {", File::FNM_EXTGLOB).should == false
File.send(@method, "escaping: {{,\\,,\\},\\{}", "escaping: ,", File::FNM_EXTGLOB).should == false
File.send(@method, "escaping: {{,\\,,\\},\\{}", "escaping: }", File::FNM_EXTGLOB).should == false
File.send(@method, "escaping: {{,\\,,\\},\\{}", "escaping: {", File::FNM_EXTGLOB).should == false
end

it "doesn't match an extra } when File::FNM_EXTGLOB is passed" do
Expand Down

0 comments on commit 2126710

Please sign in to comment.