[rubygems/rubygems] Use a constant empty tar header to avoid extra allocations
[ruby.git] / test / win32ole / test_word.rb
blob34cfbbc2a4dbcb2c635bb59f9dd29283ab03ff35
1 # frozen_string_literal: false
3 # This is test for [ruby-Bugs#3237]
5 begin
6   require 'win32ole'
7 rescue LoadError
8 end
9 require "test/unit"
11 if defined?(WIN32OLE)
12   module Word; end
13 end
15 def word_installed?
16   installed = false
17   w = nil
18   if defined?(WIN32OLE)
19     begin
20       w = WIN32OLE.new('Word.Application')
21       WIN32OLE.const_load(w, Word)
22       installed = true
23     rescue
24     ensure
25       if w
26         w.quit(Word::WdDoNotSaveChanges)
27         w = nil
28       end
29     end
30   end
31   return installed
32 end
34 if defined?(WIN32OLE)
35   class TestWIN32OLE_WITH_WORD < Test::Unit::TestCase
36     unless word_installed?
37       def test_dummy_for_skip_message
38         omit "Microsoft Word is not installed"
39       end
40     else
41       def setup
42         begin
43           @obj = WIN32OLE.new('Word.Application')
44         rescue WIN32OLE::RuntimeError
45           @obj = nil
46         end
47       end
49       def test_ole_methods
50         if @obj
51           @obj.visible = true
52           @obj.wordbasic.disableAutoMacros(true)
53           assert(true)
54         end
55       end
57       def test_s_connect
58         if @obj
59           obj2 = WIN32OLE.connect("Word.Application")
60           assert_instance_of(WIN32OLE, obj2)
61           obj2.visible = true
62         end
63       end
65       def teardown
66         if @obj
67           @obj.quit(Word::WdDoNotSaveChanges)
68           @obj = nil
69         end
70       end
71     end
72   end
73 end