summaryrefslogtreecommitdiffstats
path: root/spec/eina/eina_hash_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/eina/eina_hash_spec.rb')
-rw-r--r--spec/eina/eina_hash_spec.rb186
1 files changed, 0 insertions, 186 deletions
diff --git a/spec/eina/eina_hash_spec.rb b/spec/eina/eina_hash_spec.rb
deleted file mode 100644
index 3cd5504..0000000
--- a/spec/eina/eina_hash_spec.rb
+++ /dev/null
@@ -1,186 +0,0 @@
-#! /usr/bin/env ruby
-# -*- coding: UTF-8 -*-
-#
-require 'efl/eina/eina_hash'
-#
-describe Efl::Eina::EinaHash do
- #
- before(:all) {
- EinaHash = Efl::Eina::EinaHash
- Efl::Eina.init.should eql 1
- @d0 = ::FFI::MemoryPointer.from_string "D0"
- @d1 = ::FFI::MemoryPointer.from_string "D1"
- @d2 = ::FFI::MemoryPointer.from_string "D2"
- @d3 = ::FFI::MemoryPointer.from_string "D3"
- }
- after(:all) {
- Efl::Eina.shutdown.should eql 0
- }
- #
- it "should append prepend and fetch" do
- h = EinaHash.new
- h.add 'k2', @d2
- h.add 'k1', @d1
- h['k3']=@d3
- h['k0']=@d0
- h['k0'].read_string.should eql "D0"
- h['k1'].read_string.should eql "D1"
- h['k2'].read_string.should eql "D2"
- h['k3'].read_string.should eql "D3"
- cpt=0
- h.each { |k,v|
- cpt+=1
- v.read_string.empty?.should be_false
- }
- cpt.should eql 4
- h.free
- end
- #
- it "should be able to convert into ruby Hash from NULL pointer" do
- h = Hash.from_eina_hash ::FFI::Pointer::NULL
- h.empty?.should be_true
- h.is_a?(Hash).should be_true
- end
- #
- it "should be able to convert into ruby Hash from empty EinaHash" do
- h = Hash.from_eina_hash EinaHash.new
- h.empty?.should be_true
- h.is_a?(Hash).should be_true
- end
- #
- it "should be able to convert into ruby Hash from empty EinaHash pointer" do
- h = Hash.from_eina_hash EinaHash.new.ptr
- h.empty?.should be_true
- h.is_a?(Hash).should be_true
- end
- #
- it "should be able to convert into ruby Hash from non empty EinaHash" do
- h = EinaHash.new
- d0 = ::FFI::MemoryPointer.from_string "D0"
- d1 = ::FFI::MemoryPointer.from_string "D1"
- d2 = ::FFI::MemoryPointer.from_string "D2"
- d3 = ::FFI::MemoryPointer.from_string "D3"
- h.add 'k2', d2
- h.add 'k1', d1
- h['k3']=d3
- h["k0"]=d0
- h["k0"].read_string.should eql "D0"
- h['k1'].read_string.should eql "D1"
- h['k2'].read_string.should eql "D2"
- h['k3'].read_string.should eql "D3"
- cpt=0
- h.each { |k,v|
- cpt+=1
- v.read_string.empty?.should be_false
- true
- }
- cpt.should eql 4
- rh = Hash.from_eina_hash h
- rh.length.should eql 4
- rh2 = {}
- rh.each { |k,v|
- rh2[k.read_string]=v.read_string
- true
- }
- rh2['k0'].should eql 'D0'
- rh2['k1'].should eql 'D1'
- rh2['k2'].should eql 'D2'
- rh2['k3'].should eql 'D3'
- h.free
- end
- #
- it "should be able to convert into ruby Hash from non empty EinaHash pointer" do
- h = EinaHash.new
- d0 = ::FFI::MemoryPointer.from_string "D0"
- d1 = ::FFI::MemoryPointer.from_string "D1"
- d2 = ::FFI::MemoryPointer.from_string "D2"
- d3 = ::FFI::MemoryPointer.from_string "D3"
- h.add 'k2', d2
- h.add 'k1', d1
- h['k3']=d3
- h['k0']=d0
- h['k0'].read_string.should eql "D0"
- h['k1'].read_string.should eql "D1"
- h['k2'].read_string.should eql "D2"
- h['k3'].read_string.should eql "D3"
- rh = Hash.from_eina_hash h.ptr
- rh.length.should eql 4
- h.free
- end
- #
- it "should be able to convert into ruby Hash from non empty EinaHash pointer, with key from string" do
- h = EinaHash.new
- d0 = ::FFI::MemoryPointer.from_string "D0"
- d1 = ::FFI::MemoryPointer.from_string "D1"
- d2 = ::FFI::MemoryPointer.from_string "D2"
- d3 = ::FFI::MemoryPointer.from_string "D3"
- h.add 'k2', d2
- h.add 'k1', d1
- h['k3']=d3
- h['k0']=d0
- h['k0'].read_string.should eql "D0"
- h['k1'].read_string.should eql "D1"
- h['k2'].read_string.should eql "D2"
- h['k3'].read_string.should eql "D3"
- rh = h.to_h_conv
- rh.length.should eql 4
- rh['k0'].read_string.should eql "D0"
- rh['k1'].read_string.should eql "D1"
- rh['k2'].read_string.should eql "D2"
- rh['k3'].read_string.should eql "D3"
- h.free
- end
- #
- it "should be able to convert into ruby Hash from non empty EinaHash pointer, with key from string block" do
- h = EinaHash.new
- d0 = ::FFI::MemoryPointer.from_string "D0"
- d1 = ::FFI::MemoryPointer.from_string "D1"
- d2 = ::FFI::MemoryPointer.from_string "D2"
- d3 = ::FFI::MemoryPointer.from_string "D3"
- h.add 'k2', d2
- h.add 'k1', d1
- h['k3']=d3
- h['k0']=d0
- h['k0'].read_string.should eql "D0"
- h['k1'].read_string.should eql "D1"
- h['k2'].read_string.should eql "D2"
- h['k3'].read_string.should eql "D3"
- cpt=0
- rh = h.to_h_conv { |k| cpt+=1; k.read_string }
- cpt.should eql 4
- rh.length.should eql 4
- rh['k0'].read_string.should eql "D0"
- rh['k1'].read_string.should eql "D1"
- rh['k2'].read_string.should eql "D2"
- rh['k3'].read_string.should eql "D3"
- h.free
- end
- #
- it "should be able to build from ruby Hash" do
- rh = {}
- k0 = ::FFI::MemoryPointer.from_string "0"
- k1 = ::FFI::MemoryPointer.from_string "1"
- k2 = ::FFI::MemoryPointer.from_string "2"
- k3 = ::FFI::MemoryPointer.from_string "3"
- d0 = ::FFI::MemoryPointer.from_string "D0"
- d1 = ::FFI::MemoryPointer.from_string "D1"
- d2 = ::FFI::MemoryPointer.from_string "D2"
- d3 = ::FFI::MemoryPointer.from_string "D3"
- rh[k0]=d0
- rh[k1]=d1
- rh[k2]=d2
- rh[k3]=d3
- h = EinaHash.new rh
- h[k0].read_string.should eql "D0"
- h[k1].read_string.should eql "D1"
- h[k2].read_string.should eql "D2"
- h[k3].read_string.should eql "D3"
- h.free
- end
- #
- it "alternate constructor should work" do
- cstr_cnt = 0
- h = EinaHash.new { cstr_cnt+=1; Efl::FFI.eina_hash_string_superfast_new ::FFI::Pointer::NULL }
- cstr_cnt.should eql 1
- end
-end