summaryrefslogtreecommitdiff
path: root/test/win32ole/test_word.rb
blob: e2ca6d4d5c0c9b59d03f21002d337f83b4508049 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#
# This is test for [ruby-Bugs#3237]
#
begin
  require 'win32ole'
rescue LoadError
end
require "test/unit"

def word_installed?
  installed = false
  w = nil
  if defined?(WIN32OLE)
    begin
      w = WIN32OLE.new('Word.Application')
      installed = true
    rescue
    ensure
      if w
        w.quit
        w = nil
      end
    end
  end
  return installed
end

if defined?(WIN32OLE)
  w = nil
  dotest = word_installed?
  if !dotest
    STDERR.puts("\n#{__FILE__} skipped(Microsoft Word not found.)")
  end
  if dotest
    class TestWIN32OLE_WITH_WORD < Test::Unit::TestCase
      def setup
        begin
          @obj = WIN32OLE.new('Word.Application')
        rescue WIN32OLERuntimeError
          @obj = nil
          if !$skipped
              $skipped = true
          end
        end
      end

      def test_ole_methods
        if @obj
          @obj.visible = true
          @obj.wordbasic.disableAutoMacros(true)
          assert(true)
        else
        end
      end

      def test_s_connect
        if @obj
          obj2 = WIN32OLE.connect("Word.Application")
          assert_instance_of(WIN32OLE, obj2)
          obj2.visible = true
        end
      end

      def teardown
        if @obj
          @obj.quit
          @obj = nil
        end
      end
    end
  end
end