~ubuntu-branches/ubuntu/quantal/ruby1.9.1/quantal

« back to all changes in this revision

Viewing changes to test/win32ole/test_win32ole_variant.rb

  • Committer: Bazaar Package Importer
  • Author(s): Lucas Nussbaum
  • Date: 2010-07-31 17:08:39 UTC
  • mfrom: (1.1.4 upstream) (8.1.2 sid)
  • Revision ID: james.westby@ubuntu.com-20100731170839-j034dmpdqt1cc4p6
Tags: 1.9.2~svn28788-1
* New release based on upstream snapshot from the 1.9.2 branch,
  after 1.9.2 RC2. That branch is (supposed to be) binary-compatible
  with the 1.9.1 branch.
  + Builds fine on i386. Closes: #580852.
* Upgrade to Standards-Version: 3.9.1. No changes needed.
* Updated generated incs.
* Patches that still need work:
  + Unclear status, need more investigation:
   090729_fix_Makefile_deps.dpatch
   090803_exclude_rdoc.dpatch
   203_adjust_base_of_search_path.dpatch
   902_define_YAML_in_yaml_stringio.rb.dpatch
   919_common.mk_tweaks.dpatch
   931_libruby_suffix.dpatch
   940_test_thread_mutex_sync_shorter.dpatch
  + Maybe not needed anymore, keeping but not applying.
   102_skip_test_copy_stream.dpatch (test doesn't block anymore?)
   104_skip_btest_io.dpatch (test doesn't block anymore?)
   201_gem_prelude.dpatch (we don't use that rubygems anyway?)
   202_gem_default_dir.dpatch (we don't use that rubygems anyway?)
   940_test_file_exhaustive_fails_as_root.dpatch
   940_test_priority_fails.dpatch
   100518_load_libc_libm.dpatch
* Add disable-tests.diff: disable some tests that cause failures on FreeBSD.
  Closes: #590002, #543805, #542927.
* However, many new failures on FreeBSD. Since that version is still an
  improvement, add the check that makes test suite failures non-fatal on
  FreeBSD again. That still needs to be investigated.
* Re-add 903_skip_base_ruby_check.dpatch
* Add build-dependency on ruby1.8 and drop all pre-generated files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
      assert_equal(WIN32OLE::VARIANT::VT_CY, obj.vartype)
68
68
 
69
69
      obj = WIN32OLE_VARIANT.new(nil, WIN32OLE::VARIANT::VT_DATE)
70
 
      assert_equal("1899/12/30 00:00:00", obj.value)
 
70
      assert_equal(Time.new(1899,12,30), obj.value)
71
71
      assert_equal(WIN32OLE::VARIANT::VT_DATE, obj.vartype)
72
72
 
73
73
      obj = WIN32OLE_VARIANT.new(nil, WIN32OLE::VARIANT::VT_BSTR)
102
102
      assert_equal(0, obj.value)
103
103
      assert_equal(WIN32OLE::VARIANT::VT_UI4, obj.vartype)
104
104
 
105
 
      
 
105
 
106
106
      if defined?(WIN32OLE::VARIANT::VT_I8)
107
107
        obj = WIN32OLE_VARIANT.new(nil, WIN32OLE::VARIANT::VT_I8)
108
108
        assert_equal(0, obj.value)
114
114
        assert_equal(0, obj.value)
115
115
        assert_equal(WIN32OLE::VARIANT::VT_UI8, obj.vartype)
116
116
      end
117
 
      
 
117
 
118
118
      obj = WIN32OLE_VARIANT.new(nil, WIN32OLE::VARIANT::VT_INT)
119
119
      assert_equal(0, obj.value)
120
120
      assert_equal(WIN32OLE::VARIANT::VT_INT, obj.vartype)
146
146
      assert_equal(WIN32OLE::VARIANT::VT_CY, obj.vartype)
147
147
 
148
148
      obj = WIN32OLE_VARIANT.new("2001-06-15 12:17:34", WIN32OLE::VARIANT::VT_DATE)
149
 
      assert_equal("2001/06/15 12:17:34", obj.value)
 
149
      assert_equal(Time.new(2001,06,15,12,17,34), obj.value)
150
150
      assert_equal(WIN32OLE::VARIANT::VT_DATE, obj.vartype)
151
151
 
152
152
      obj = WIN32OLE_VARIANT.new("foo", WIN32OLE::VARIANT::VT_BSTR)
216
216
      assert_equal(WIN32OLE::VARIANT::VT_CY|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
217
217
 
218
218
      obj = WIN32OLE_VARIANT.new("2001-06-15 12:17:34", WIN32OLE::VARIANT::VT_DATE|WIN32OLE::VARIANT::VT_BYREF)
219
 
      assert_equal("2001/06/15 12:17:34", obj.value)
 
219
      assert_equal(Time.new(2001,06,15,12,17,34), obj.value)
220
220
      assert_equal(WIN32OLE::VARIANT::VT_DATE|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
221
221
 
222
222
      obj = WIN32OLE_VARIANT.new("foo", WIN32OLE::VARIANT::VT_BSTR|WIN32OLE::VARIANT::VT_BYREF)
251
251
      assert_equal(5, obj.value)
252
252
      assert_equal(WIN32OLE::VARIANT::VT_UINT|WIN32OLE::VARIANT::VT_BYREF, obj.vartype)
253
253
    end
254
 
    
 
254
 
255
255
    # This test is failed in cygwin.
256
256
    # The tagVARIANT definition has no union member pllVal in cygwin.
257
257
    def test_s_new_with_i8_byref
263
263
        STDERR.puts("\n#{__FILE__}:#{__LINE__}:#{self.class.name}.test_s_new_with_i8_byref is skipped")
264
264
      end
265
265
    end
266
 
    
 
266
 
267
267
    # This test is failed in cygwin.
268
268
    # The tagVARIANT definition has no union member pullVal in cygwin.
269
269
    def test_s_new_with_ui8_byref
319
319
      obj = WIN32OLE_VARIANT.array([2,3], WIN32OLE::VARIANT::VT_I4|WIN32OLE::VARIANT::VT_BYREF)
320
320
      assert_equal(WIN32OLE::VARIANT::VT_I4|WIN32OLE::VARIANT::VT_BYREF|WIN32OLE::VARIANT::VT_ARRAY, obj.vartype)
321
321
      assert_equal([[0, 0, 0],[0, 0, 0]], obj.value)
322
 
      
 
322
 
323
323
      obj = WIN32OLE_VARIANT.array([2,3], WIN32OLE::VARIANT::VT_I4|WIN32OLE::VARIANT::VT_ARRAY)
324
324
      assert_instance_of(WIN32OLE_VARIANT, obj)
325
325
      assert_equal(WIN32OLE::VARIANT::VT_I4|WIN32OLE::VARIANT::VT_ARRAY, obj.vartype)
373
373
 
374
374
    def test_conversion_str2date
375
375
      obj = WIN32OLE_VARIANT.new("2004-12-24 12:24:45", WIN32OLE::VARIANT::VT_DATE)
376
 
      assert_equal("2004/12/24 12:24:45", obj.value)
 
376
      assert_equal(Time.new(2004,12,24,12,24,45), obj.value)
377
377
    end
378
378
 
379
379
    def test_conversion_time2date
380
380
      dt = Time.mktime(2004, 12, 24, 12, 24, 45)
381
381
      obj = WIN32OLE_VARIANT.new(dt, WIN32OLE::VARIANT::VT_DATE)
382
 
      assert_equal("2004/12/24 12:24:45", obj.value)
 
382
      assert_equal(dt, obj.value)
383
383
    end
384
384
 
 
385
    # this test failed because of VariantTimeToSystemTime
 
386
    # and SystemTimeToVariantTime API ignores wMilliseconds 
 
387
    # member of SYSTEMTIME  struct.
 
388
    #
 
389
    # def test_conversion_time_nsec2date
 
390
    #   dt = Time.new(2004, 12,24, 12, 24, 45)
 
391
    #   dt += 0.1
 
392
    #   obj = WIN32OLE_VARIANT.new(dt, WIN32OLE::VARIANT::VT_DATE)
 
393
    #   assert_equal(dt, obj.value)
 
394
    # end
 
395
 
385
396
    def test_conversion_str2cy
386
 
      begin 
387
 
        WIN32OLE.locale = 0x0411 # set locale Japanese
388
 
        obj = WIN32OLE_VARIANT.new("\\10,000", WIN32OLE::VARIANT::VT_CY)
389
 
        assert_equal("10000", obj.value)
 
397
      begin
 
398
        begin
 
399
          WIN32OLE.locale = 0x0411 # set locale Japanese
 
400
        rescue WIN32OLERuntimeError
 
401
          STDERR.puts("\n#{__FILE__}:#{__LINE__}:#{self.class.name}.test_conversion_str2cy is skipped(Japanese locale is not installed)")
 
402
        end
 
403
        if WIN32OLE.locale == 0x0411
 
404
          obj = WIN32OLE_VARIANT.new("\\10,000", WIN32OLE::VARIANT::VT_CY)
 
405
          assert_equal("10000", obj.value)
 
406
        end
390
407
      ensure
391
408
        WIN32OLE.locale = WIN32OLE::LOCALE_SYSTEM_DEFAULT
392
409
      end
464
481
      obj = WIN32OLE_VARIANT.new(["abc", "123"], vartype)
465
482
      assert_equal(vartype, obj.vartype)
466
483
      assert_equal(["abc", "123"], obj.value)
467
 
      
 
484
 
468
485
      vartype = WIN32OLE::VARIANT::VT_ARRAY|WIN32OLE::VARIANT::VT_BYREF|WIN32OLE::VARIANT::VT_BSTR
469
486
      obj = WIN32OLE_VARIANT.new(["abc", "123"], vartype)
470
487
      assert_equal(vartype, obj.vartype)
548
565
 
549
566
    def test_conversion_vt_date
550
567
      obj = WIN32OLE_VARIANT.new(-657434, WIN32OLE::VARIANT::VT_DATE)
551
 
      assert_equal("0100/01/01 00:00:00", obj.value)
 
568
      assert_equal(Time.new(100,1,1), obj.value)
552
569
 
553
570
      obj = WIN32OLE_VARIANT.new("1500/12/29 23:59:59", WIN32OLE::VARIANT::VT_DATE)
554
 
      assert_equal("1500/12/29 23:59:59", obj.value)
 
571
      assert_equal(Time.new(1500,12,29,23,59,59), obj.value)
555
572
 
556
573
      obj = WIN32OLE_VARIANT.new("1500/12/30 00:00:00", WIN32OLE::VARIANT::VT_DATE)
557
 
      assert_equal("1500/12/30 00:00:00", obj.value)
 
574
      assert_equal(Time.new(1500,12,30), obj.value)
558
575
 
559
576
      obj = WIN32OLE_VARIANT.new("1500/12/30 00:00:01", WIN32OLE::VARIANT::VT_DATE)
560
 
      assert_equal("1500/12/30 00:00:01", obj.value)
 
577
      assert_equal(Time.new(1500,12,30,0,0,1), obj.value)
561
578
 
562
579
      obj = WIN32OLE_VARIANT.new("1899/12/29 23:59:59", WIN32OLE::VARIANT::VT_DATE)
563
 
      assert_equal("1899/12/29 23:59:59", obj.value)
 
580
      assert_equal(Time.new(1899,12,29,23,59,59), obj.value)
564
581
 
565
582
      obj = WIN32OLE_VARIANT.new("1899/12/30 00:00:00", WIN32OLE::VARIANT::VT_DATE)
566
 
      assert_equal("1899/12/30 00:00:00", obj.value)
 
583
      assert_equal(Time.new(1899,12,30), obj.value)
567
584
 
568
585
      obj = WIN32OLE_VARIANT.new("1899/12/30 00:00:01", WIN32OLE::VARIANT::VT_DATE)
569
 
      assert_equal("1899/12/30 00:00:01", obj.value)
 
586
      assert_equal(Time.new(1899,12,30,0,0,1), obj.value)
570
587
 
571
588
      obj = WIN32OLE_VARIANT.new(0, WIN32OLE::VARIANT::VT_DATE)
572
 
      assert_equal("1899/12/30 00:00:00", obj.value)
 
589
      assert_equal(Time.new(1899,12,30), obj.value)
573
590
 
574
591
      obj = WIN32OLE_VARIANT.new("2008/12/29 23:59:59", WIN32OLE::VARIANT::VT_DATE)
575
 
      assert_equal("2008/12/29 23:59:59", obj.value)
 
592
      assert_equal(Time.new(2008,12,29,23,59,59), obj.value)
576
593
 
577
594
      obj = WIN32OLE_VARIANT.new("2008/12/30 00:00:00", WIN32OLE::VARIANT::VT_DATE)
578
 
      assert_equal("2008/12/30 00:00:00", obj.value)
 
595
      assert_equal(Time.new(2008,12,30,0,0,0), obj.value)
579
596
 
580
597
      obj = WIN32OLE_VARIANT.new("2008/12/30 00:00:01", WIN32OLE::VARIANT::VT_DATE)
581
 
      assert_equal("2008/12/30 00:00:01", obj.value)
 
598
      assert_equal(Time.new(2008,12,30,0,0,1), obj.value)
582
599
 
583
600
      obj = WIN32OLE_VARIANT.new("9999/12/31 23:59:59", WIN32OLE::VARIANT::VT_DATE)
584
 
      assert_equal("9999/12/31 23:59:59", obj.value)
 
601
      assert_equal(Time.new(9999,12,31,23,59,59), obj.value)
585
602
    end
586
603
 
587
604
    def test_create_nil_dispatch
620
637
      assert_raise(WIN32OLERuntimeError) {
621
638
        obj.value = "hogehoge"
622
639
      }
623
 
      assert_equal("2007/01/01 00:00:00", obj.value)
 
640
      assert_equal(Time.new(2007,1,1), obj.value)
624
641
 
625
642
      obj2 = WIN32OLE_VARIANT.new("2006/01/01", WIN32OLE::VARIANT::VT_DATE)
626
643
      obj.value = obj2
627
 
      assert_equal("2006/01/01 00:00:00", obj.value)
 
644
      assert_equal(Time.new(2006,01,01), obj.value)
628
645
    end
629
646
 
630
647
    def test_c_nothing