diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-27 16:05:02 +0200 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2011-04-27 16:05:02 +0200 | 
| commit | cbee8a70f433192a69ed90d9632d696dcb4ff2ab (patch) | |
| tree | 7144a785860f365b89464d55753f4f299b66c00f /spec | |
| parent | 2806b37dc8f9721ac5e84755654b6b6d4ebad5a9 (diff) | |
| download | ffi-efl-cbee8a70f433192a69ed90d9632d696dcb4ff2ab.zip ffi-efl-cbee8a70f433192a69ed90d9632d696dcb4ff2ab.tar.gz  | |
add eina_list and specs
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/eina_list_spec.rb | 100 | 
1 files changed, 100 insertions, 0 deletions
diff --git a/spec/eina_list_spec.rb b/spec/eina_list_spec.rb new file mode 100644 index 0000000..5dba1de --- /dev/null +++ b/spec/eina_list_spec.rb @@ -0,0 +1,100 @@ +#! /usr/bin/env ruby +# -*- coding: UTF-8 -*- +# +require 'efl/eina_list' +# +describe Efl::Eina::EinaList do +    # +    before(:all) { +        EinaList = Efl::Eina::EinaList +        Efl::Eina.init.should eql 1 +    } +    after(:all) { +        Efl::Eina.shutdown.should eql 0 +    } +    # +    it "should append prepend and fetch" do +        l = EinaList.new +        d1 = ::FFI::MemoryPointer.from_string "D0" +        d2 = ::FFI::MemoryPointer.from_string "D1" +        d3 = ::FFI::MemoryPointer.from_string "D2" +        d4 = ::FFI::MemoryPointer.from_string "D3" +        l.append d3 +        l.prepend d2 +        l << d4 +        l.unshift d1 +        0.upto 3 do |i| +            l.nth(i).read_string.should eql "D#{i}" +        end +        l.each { |p| p.read_string.empty?.should be_false } +        l.free +    end +    # +    it "should be able to convert into ruby Array from NULL pointer" do +        ary = Array.from_eina_list ::FFI::Pointer::NULL +        ary.empty?.should be_true +        ary.is_a?(Array).should be_true +    end +    # +    it "should be able to convert into ruby Array from empty EinaList" do +        ary = Array.from_eina_list EinaList.new +        ary.empty?.should be_true +        ary.is_a?(Array).should be_true +    end +    # +    it "should be able to convert into ruby Array from empty EinaList pointer" do +        ary = Array.from_eina_list EinaList.new.ptr +        ary.empty?.should be_true +        ary.is_a?(Array).should be_true +    end +    # +    it "should be able to convert into ruby Array from non empty EinaList" do +        l = EinaList.new +        d1 = ::FFI::MemoryPointer.from_string "D0" +        d2 = ::FFI::MemoryPointer.from_string "D1" +        d3 = ::FFI::MemoryPointer.from_string "D2" +        d4 = ::FFI::MemoryPointer.from_string "D3" +        l.append d3 +        l.prepend d2 +        l << d4 +        l.unshift d1 +        ary =  Array.from_eina_list l +        ary.length.should eql 4 +        0.upto 3 do |i| +            ary[i].read_string.should eql "D#{i}" +        end +        l.free +    end +    # +    it "should be able to convert into ruby Array from non empty EinaList pointer" do +        l = EinaList.new +        d1 = ::FFI::MemoryPointer.from_string "D0" +        d2 = ::FFI::MemoryPointer.from_string "D1" +        d3 = ::FFI::MemoryPointer.from_string "D2" +        d4 = ::FFI::MemoryPointer.from_string "D3" +        l.append d3 +        l.prepend d2 +        l << d4 +        l.unshift d1 +        ary =  Array.from_eina_list l.ptr +        ary.length.should eql 4 +        0.upto 3 do |i| +            ary[i].read_string.should eql "D#{i}" +        end +        l.free +    end +    # +    it "should be able to build from ruby Array" do +        a =  [] +        a << ::FFI::MemoryPointer.from_string("D0") +        a << ::FFI::MemoryPointer.from_string("D1") +        a << ::FFI::MemoryPointer.from_string("D2") +        a << ::FFI::MemoryPointer.from_string("D3") +        l = EinaList.new a +        0.upto 3 do |i| +            l.nth(i).read_string.should eql "D#{i}" +        end +        l.free +    end +    # +end  | 
