windows-pr 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +444 -438
  3. data/MANIFEST +68 -65
  4. data/README +154 -153
  5. data/Rakefile +42 -37
  6. data/doc/conversion_guide.txt +37 -37
  7. data/lib/windows/clipboard.rb +61 -61
  8. data/lib/windows/com.rb +192 -192
  9. data/lib/windows/com/accessibility.rb +16 -16
  10. data/lib/windows/com/automation.rb +149 -149
  11. data/lib/windows/com/variant.rb +24 -24
  12. data/lib/windows/console.rb +114 -114
  13. data/lib/windows/debug.rb +35 -35
  14. data/lib/windows/device_io.rb +248 -248
  15. data/lib/windows/directory.rb +27 -27
  16. data/lib/windows/error.rb +504 -498
  17. data/lib/windows/eventlog.rb +80 -80
  18. data/lib/windows/file.rb +264 -264
  19. data/lib/windows/file_mapping.rb +25 -25
  20. data/lib/windows/filesystem.rb +15 -15
  21. data/lib/windows/gdi/bitmap.rb +65 -65
  22. data/lib/windows/gdi/device_context.rb +46 -46
  23. data/lib/windows/gdi/metafile.rb +40 -40
  24. data/lib/windows/gdi/painting_drawing.rb +115 -115
  25. data/lib/windows/handle.rb +23 -23
  26. data/lib/windows/library.rb +44 -44
  27. data/lib/windows/limits.rb +34 -34
  28. data/lib/windows/mailslot.rb +24 -24
  29. data/lib/windows/memory.rb +128 -128
  30. data/lib/windows/msvcrt/buffer.rb +75 -75
  31. data/lib/windows/msvcrt/directory.rb +31 -31
  32. data/lib/windows/msvcrt/file.rb +47 -47
  33. data/lib/windows/msvcrt/io.rb +73 -73
  34. data/lib/windows/msvcrt/string.rb +182 -182
  35. data/lib/windows/msvcrt/time.rb +169 -169
  36. data/lib/windows/national.rb +580 -580
  37. data/lib/windows/network/management.rb +525 -525
  38. data/lib/windows/network/snmp.rb +92 -92
  39. data/lib/windows/network/winsock.rb +128 -128
  40. data/lib/windows/nio.rb +50 -50
  41. data/lib/windows/ntfs/winternl.rb +117 -117
  42. data/lib/windows/path.rb +143 -143
  43. data/lib/windows/pipe.rb +42 -42
  44. data/lib/windows/process.rb +176 -176
  45. data/lib/windows/registry.rb +171 -171
  46. data/lib/windows/security.rb +479 -479
  47. data/lib/windows/security/authentication.rb +32 -32
  48. data/lib/windows/security/sspi.rb +153 -0
  49. data/lib/windows/service.rb +142 -142
  50. data/lib/windows/shell.rb +171 -171
  51. data/lib/windows/socket.rb +86 -86
  52. data/lib/windows/sound.rb +39 -39
  53. data/lib/windows/synchronize.rb +133 -133
  54. data/lib/windows/system_info.rb +229 -229
  55. data/lib/windows/thread.rb +64 -64
  56. data/lib/windows/time.rb +48 -48
  57. data/lib/windows/tool_helper.rb +36 -36
  58. data/lib/windows/unicode.rb +155 -155
  59. data/lib/windows/volume.rb +61 -61
  60. data/lib/windows/window.rb +81 -81
  61. data/lib/windows/window/classes.rb +59 -59
  62. data/lib/windows/window/dialog.rb +91 -91
  63. data/lib/windows/window/menu.rb +102 -102
  64. data/lib/windows/window/message.rb +297 -297
  65. data/lib/windows/window/properties.rb +20 -20
  66. data/lib/windows/window/timer.rb +19 -19
  67. data/lib/windows/wsa.rb +102 -102
  68. data/test/tc_clipboard.rb +41 -41
  69. data/test/tc_com.rb +32 -32
  70. data/test/tc_com_automation.rb +15 -15
  71. data/test/tc_console.rb +108 -108
  72. data/test/tc_debug.rb +48 -48
  73. data/test/tc_device_io.rb +29 -29
  74. data/test/tc_directory.rb +25 -25
  75. data/test/tc_error.rb +38 -38
  76. data/test/tc_eventlog.rb +58 -58
  77. data/test/tc_file.rb +67 -67
  78. data/test/tc_file_mapping.rb +38 -38
  79. data/test/tc_filesystem.rb +27 -27
  80. data/test/tc_gdi_bitmap.rb +25 -25
  81. data/test/tc_gdi_metafile.rb +23 -23
  82. data/test/tc_handle.rb +36 -36
  83. data/test/tc_library.rb +37 -37
  84. data/test/tc_limits.rb +34 -34
  85. data/test/tc_mailslot.rb +22 -22
  86. data/test/tc_memory.rb +44 -44
  87. data/test/tc_msvcrt_buffer.rb +63 -63
  88. data/test/tc_msvcrt_directory.rb +96 -96
  89. data/test/tc_msvcrt_file.rb +80 -80
  90. data/test/tc_msvcrt_io.rb +48 -48
  91. data/test/tc_msvcrt_string.rb +94 -94
  92. data/test/tc_msvcrt_time.rb +19 -19
  93. data/test/tc_national.rb +38 -38
  94. data/test/tc_network_management.rb +32 -32
  95. data/test/tc_network_snmp.rb +31 -31
  96. data/test/tc_network_winsock.rb +34 -34
  97. data/test/tc_nio.rb +32 -32
  98. data/test/tc_ntfs_winternl.rb +48 -48
  99. data/test/tc_path.rb +90 -90
  100. data/test/tc_pipe.rb +53 -53
  101. data/test/tc_process.rb +24 -24
  102. data/test/tc_registry.rb +29 -29
  103. data/test/tc_security.rb +104 -104
  104. data/test/tc_security_authentication.rb +34 -34
  105. data/test/tc_security_sspi.rb +23 -0
  106. data/test/tc_service.rb +57 -57
  107. data/test/tc_shell.rb +34 -34
  108. data/test/tc_socket.rb +20 -20
  109. data/test/tc_sound.rb +37 -37
  110. data/test/tc_synchronize.rb +75 -75
  111. data/test/tc_system_info.rb +33 -33
  112. data/test/tc_thread.rb +29 -29
  113. data/test/tc_time.rb +32 -32
  114. data/test/tc_tool_helper.rb +29 -29
  115. data/test/tc_unicode.rb +83 -83
  116. data/test/tc_volume.rb +47 -47
  117. data/test/tc_window.rb +45 -45
  118. data/test/tc_window_classes.rb +33 -33
  119. data/test/tc_window_dialog.rb +33 -33
  120. data/test/tc_window_menu.rb +29 -29
  121. data/test/tc_window_message.rb +33 -33
  122. data/test/tc_window_properties.rb +29 -29
  123. data/test/tc_window_timer.rb +29 -29
  124. data/test/tc_wsa.rb +19 -19
  125. data/windows-pr.gemspec +33 -34
  126. metadata +31 -32
@@ -1,96 +1,96 @@
1
- #####################################################################
2
- # tc_msvcrt_directory.rb
3
- #
4
- # Test case for the Windows::MSVCRT::File module.
5
- #####################################################################
6
- require 'windows/msvcrt/directory'
7
- require 'fileutils'
8
- require 'test/unit'
9
-
10
- class TC_Windows_MSVCRT_Directory < Test::Unit::TestCase
11
- include Windows::MSVCRT::Directory
12
-
13
- def setup
14
- @pwd = Dir.pwd
15
- @dir = 'delete_me'
16
- @buf = 0.chr * 260
17
- end
18
-
19
- def test_method_constants
20
- assert_not_nil(Chdir)
21
- assert_not_nil(Wchdir)
22
- assert_not_nil(Chdrive)
23
- assert_not_nil(Getcwd)
24
- assert_not_nil(Wgetcwd)
25
- assert_not_nil(Getdcwd)
26
- assert_not_nil(Getdiskfree)
27
- assert_not_nil(Getdrive)
28
- assert_not_nil(Getdrives)
29
- assert_not_nil(Mkdir)
30
- assert_not_nil(Wmkdir)
31
- assert_not_nil(Rmdir)
32
- assert_not_nil(Wrmdir)
33
- assert_not_nil(Searchenv)
34
- assert_not_nil(Wsearchenv)
35
- end
36
-
37
- def test_chdir
38
- assert_nothing_raised{ chdir('..') }
39
- assert_equal(File.dirname(@pwd), Dir.pwd)
40
- end
41
-
42
- def test_wchdir
43
- assert_nothing_raised{ wchdir("C:\\") }
44
- end
45
-
46
- def test_chdrive
47
- assert(self.respond_to?(:chdrive, true))
48
- end
49
-
50
- def test_getcwd
51
- assert(self.respond_to?(:getcwd, true))
52
- end
53
-
54
- def test_wgetcwd
55
- assert(self.respond_to?(:wgetcwd, true))
56
- end
57
-
58
- def test_getdcwd
59
- assert(self.respond_to?(:getdcwd, true))
60
- end
61
-
62
- def test_wgetdcwd
63
- assert(self.respond_to?(:wgetdcwd, true))
64
- end
65
-
66
- def test_mkdir
67
- assert(self.respond_to?(:mkdir, true))
68
- assert_nothing_raised{ mkdir(@dir) }
69
- assert_equal(true, File.exists?(@dir))
70
- end
71
-
72
- def test_rmdir
73
- Dir.mkdir(@dir) unless File.exists?(@dir)
74
- assert(self.respond_to?(:rmdir, true))
75
- assert_nothing_raised{ rmdir(@dir) }
76
- assert_equal(false, File.exists?(@dir))
77
- end
78
-
79
- def test_searchenv
80
- possible = [
81
- "c:\\winnt\\system32\\notepad.exe",
82
- "c:\\windows\\system32\\notepad.exe",
83
- "c:\\windows\\notepad.exe"
84
- ]
85
- assert(self.respond_to?(:searchenv, true))
86
- assert_nothing_raised{ searchenv("notepad.exe", "PATH", @buf) }
87
- assert_equal(true, possible.include?(@buf.strip.downcase))
88
- end
89
-
90
- def teardown
91
- FileUtils.rm_f(@dir) if File.exists?(@dir)
92
- @pwd = nil
93
- @dir = nil
94
- @buf = 0
95
- end
96
- end
1
+ #####################################################################
2
+ # tc_msvcrt_directory.rb
3
+ #
4
+ # Test case for the Windows::MSVCRT::File module.
5
+ #####################################################################
6
+ require 'windows/msvcrt/directory'
7
+ require 'fileutils'
8
+ require 'test/unit'
9
+
10
+ class TC_Windows_MSVCRT_Directory < Test::Unit::TestCase
11
+ include Windows::MSVCRT::Directory
12
+
13
+ def setup
14
+ @pwd = Dir.pwd
15
+ @dir = 'delete_me'
16
+ @buf = 0.chr * 260
17
+ end
18
+
19
+ def test_method_constants
20
+ assert_not_nil(Chdir)
21
+ assert_not_nil(Wchdir)
22
+ assert_not_nil(Chdrive)
23
+ assert_not_nil(Getcwd)
24
+ assert_not_nil(Wgetcwd)
25
+ assert_not_nil(Getdcwd)
26
+ assert_not_nil(Getdiskfree)
27
+ assert_not_nil(Getdrive)
28
+ assert_not_nil(Getdrives)
29
+ assert_not_nil(Mkdir)
30
+ assert_not_nil(Wmkdir)
31
+ assert_not_nil(Rmdir)
32
+ assert_not_nil(Wrmdir)
33
+ assert_not_nil(Searchenv)
34
+ assert_not_nil(Wsearchenv)
35
+ end
36
+
37
+ def test_chdir
38
+ assert_nothing_raised{ chdir('..') }
39
+ assert_equal(File.dirname(@pwd), Dir.pwd)
40
+ end
41
+
42
+ def test_wchdir
43
+ assert_nothing_raised{ wchdir("C:\\") }
44
+ end
45
+
46
+ def test_chdrive
47
+ assert(self.respond_to?(:chdrive, true))
48
+ end
49
+
50
+ def test_getcwd
51
+ assert(self.respond_to?(:getcwd, true))
52
+ end
53
+
54
+ def test_wgetcwd
55
+ assert(self.respond_to?(:wgetcwd, true))
56
+ end
57
+
58
+ def test_getdcwd
59
+ assert(self.respond_to?(:getdcwd, true))
60
+ end
61
+
62
+ def test_wgetdcwd
63
+ assert(self.respond_to?(:wgetdcwd, true))
64
+ end
65
+
66
+ def test_mkdir
67
+ assert(self.respond_to?(:mkdir, true))
68
+ assert_nothing_raised{ mkdir(@dir) }
69
+ assert_equal(true, File.exists?(@dir))
70
+ end
71
+
72
+ def test_rmdir
73
+ Dir.mkdir(@dir) unless File.exists?(@dir)
74
+ assert(self.respond_to?(:rmdir, true))
75
+ assert_nothing_raised{ rmdir(@dir) }
76
+ assert_equal(false, File.exists?(@dir))
77
+ end
78
+
79
+ def test_searchenv
80
+ possible = [
81
+ "c:\\winnt\\system32\\notepad.exe",
82
+ "c:\\windows\\system32\\notepad.exe",
83
+ "c:\\windows\\notepad.exe"
84
+ ]
85
+ assert(self.respond_to?(:searchenv, true))
86
+ assert_nothing_raised{ searchenv("notepad.exe", "PATH", @buf) }
87
+ assert_equal(true, possible.include?(@buf.strip.downcase))
88
+ end
89
+
90
+ def teardown
91
+ FileUtils.rm_f(@dir) if File.exists?(@dir)
92
+ @pwd = nil
93
+ @dir = nil
94
+ @buf = 0
95
+ end
96
+ end
@@ -1,80 +1,80 @@
1
- #####################################################################
2
- # tc_msvcrt_file.rb
3
- #
4
- # Test case for the Windows::MSVCRT::File module.
5
- #####################################################################
6
- require 'windows/msvcrt/file'
7
- require 'test/unit'
8
-
9
- class MFileFoo
10
- include Windows::MSVCRT::File
11
- end
12
-
13
- class TC_Windows_MSVCRT_File < Test::Unit::TestCase
14
- def setup
15
- @foo = MFileFoo.new
16
- end
17
-
18
- def test_numeric_constants
19
- assert_not_nil(MFileFoo::S_IFMT)
20
- assert_not_nil(MFileFoo::S_IFDIR)
21
- assert_not_nil(MFileFoo::S_IFCHR)
22
- assert_not_nil(MFileFoo::S_IFIFO)
23
- assert_not_nil(MFileFoo::S_IFREG)
24
- assert_not_nil(MFileFoo::S_IREAD)
25
- assert_not_nil(MFileFoo::S_IWRITE)
26
- assert_not_nil(MFileFoo::S_IEXEC)
27
- end
28
-
29
- def test_method_constants
30
- assert_not_nil(MFileFoo::Chmod)
31
- assert_not_nil(MFileFoo::Chsize)
32
- assert_not_nil(MFileFoo::Mktemp)
33
- assert_not_nil(MFileFoo::Stat)
34
- assert_not_nil(MFileFoo::Stat64)
35
- assert_not_nil(MFileFoo::Wchmod)
36
- assert_not_nil(MFileFoo::Wmktemp)
37
- assert_not_nil(MFileFoo::Wstat)
38
- assert_not_nil(MFileFoo::Wstat64)
39
- end
40
-
41
- def test_chmod
42
- assert_respond_to(@foo, :chmod)
43
- end
44
-
45
- def test_chsize
46
- assert_respond_to(@foo, :chsize)
47
- end
48
-
49
- def test_mktemp
50
- assert_respond_to(@foo, :mktemp)
51
- end
52
-
53
- def test_stat
54
- assert_respond_to(@foo, :stat)
55
- end
56
-
57
- def test_stat64
58
- assert_respond_to(@foo, :stat64)
59
- end
60
-
61
- def test_wchmod
62
- assert_respond_to(@foo, :wchmod)
63
- end
64
-
65
- def test_wmktemp
66
- assert_respond_to(@foo, :wmktemp)
67
- end
68
-
69
- def test_wstat
70
- assert_respond_to(@foo, :wstat)
71
- end
72
-
73
- def test_wstat64
74
- assert_respond_to(@foo, :wstat64)
75
- end
76
-
77
- def teardown
78
- @foo = nil
79
- end
80
- end
1
+ #####################################################################
2
+ # tc_msvcrt_file.rb
3
+ #
4
+ # Test case for the Windows::MSVCRT::File module.
5
+ #####################################################################
6
+ require 'windows/msvcrt/file'
7
+ require 'test/unit'
8
+
9
+ class MFileFoo
10
+ include Windows::MSVCRT::File
11
+ end
12
+
13
+ class TC_Windows_MSVCRT_File < Test::Unit::TestCase
14
+ def setup
15
+ @foo = MFileFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_not_nil(MFileFoo::S_IFMT)
20
+ assert_not_nil(MFileFoo::S_IFDIR)
21
+ assert_not_nil(MFileFoo::S_IFCHR)
22
+ assert_not_nil(MFileFoo::S_IFIFO)
23
+ assert_not_nil(MFileFoo::S_IFREG)
24
+ assert_not_nil(MFileFoo::S_IREAD)
25
+ assert_not_nil(MFileFoo::S_IWRITE)
26
+ assert_not_nil(MFileFoo::S_IEXEC)
27
+ end
28
+
29
+ def test_method_constants
30
+ assert_not_nil(MFileFoo::Chmod)
31
+ assert_not_nil(MFileFoo::Chsize)
32
+ assert_not_nil(MFileFoo::Mktemp)
33
+ assert_not_nil(MFileFoo::Stat)
34
+ assert_not_nil(MFileFoo::Stat64)
35
+ assert_not_nil(MFileFoo::Wchmod)
36
+ assert_not_nil(MFileFoo::Wmktemp)
37
+ assert_not_nil(MFileFoo::Wstat)
38
+ assert_not_nil(MFileFoo::Wstat64)
39
+ end
40
+
41
+ def test_chmod
42
+ assert_respond_to(@foo, :chmod)
43
+ end
44
+
45
+ def test_chsize
46
+ assert_respond_to(@foo, :chsize)
47
+ end
48
+
49
+ def test_mktemp
50
+ assert_respond_to(@foo, :mktemp)
51
+ end
52
+
53
+ def test_stat
54
+ assert_respond_to(@foo, :stat)
55
+ end
56
+
57
+ def test_stat64
58
+ assert_respond_to(@foo, :stat64)
59
+ end
60
+
61
+ def test_wchmod
62
+ assert_respond_to(@foo, :wchmod)
63
+ end
64
+
65
+ def test_wmktemp
66
+ assert_respond_to(@foo, :wmktemp)
67
+ end
68
+
69
+ def test_wstat
70
+ assert_respond_to(@foo, :wstat)
71
+ end
72
+
73
+ def test_wstat64
74
+ assert_respond_to(@foo, :wstat64)
75
+ end
76
+
77
+ def teardown
78
+ @foo = nil
79
+ end
80
+ end
@@ -1,48 +1,48 @@
1
- #####################################################################
2
- # tc_msvcrt_io.rb
3
- #
4
- # Test case for the Windows::MSVCRT::IO module.
5
- #####################################################################
6
- require 'windows/msvcrt/io'
7
- require 'test/unit'
8
-
9
- class MIOFoo
10
- include Windows::MSVCRT::IO
11
- end
12
-
13
- class TC_Windows_MSVCRT_IO < Test::Unit::TestCase
14
- def setup
15
- @foo = MIOFoo.new
16
- end
17
-
18
- def test_numeric_constants
19
- assert_not_nil(MIOFoo::S_IFMT)
20
- end
21
-
22
- def test_method_constants
23
- assert_not_nil(MIOFoo::Clearerr)
24
- assert_not_nil(MIOFoo::Close)
25
- assert_not_nil(MIOFoo::Fclose)
26
- assert_not_nil(MIOFoo::Fileno)
27
- end
28
-
29
- def test_clearerr
30
- assert_respond_to(@foo, :clearerr)
31
- end
32
-
33
- def test_close
34
- assert_respond_to(@foo, :close)
35
- end
36
-
37
- def test_fclose
38
- assert_respond_to(@foo, :fclose)
39
- end
40
-
41
- def test_fileno
42
- assert_respond_to(@foo, :fileno)
43
- end
44
-
45
- def teardown
46
- @foo = nil
47
- end
48
- end
1
+ #####################################################################
2
+ # tc_msvcrt_io.rb
3
+ #
4
+ # Test case for the Windows::MSVCRT::IO module.
5
+ #####################################################################
6
+ require 'windows/msvcrt/io'
7
+ require 'test/unit'
8
+
9
+ class MIOFoo
10
+ include Windows::MSVCRT::IO
11
+ end
12
+
13
+ class TC_Windows_MSVCRT_IO < Test::Unit::TestCase
14
+ def setup
15
+ @foo = MIOFoo.new
16
+ end
17
+
18
+ def test_numeric_constants
19
+ assert_not_nil(MIOFoo::S_IFMT)
20
+ end
21
+
22
+ def test_method_constants
23
+ assert_not_nil(MIOFoo::Clearerr)
24
+ assert_not_nil(MIOFoo::Close)
25
+ assert_not_nil(MIOFoo::Fclose)
26
+ assert_not_nil(MIOFoo::Fileno)
27
+ end
28
+
29
+ def test_clearerr
30
+ assert_respond_to(@foo, :clearerr)
31
+ end
32
+
33
+ def test_close
34
+ assert_respond_to(@foo, :close)
35
+ end
36
+
37
+ def test_fclose
38
+ assert_respond_to(@foo, :fclose)
39
+ end
40
+
41
+ def test_fileno
42
+ assert_respond_to(@foo, :fileno)
43
+ end
44
+
45
+ def teardown
46
+ @foo = nil
47
+ end
48
+ end
@@ -1,94 +1,94 @@
1
- #####################################################################
2
- # tc_msvcrt_string.rb
3
- #
4
- # Test case for the Windows::MSVCRT::String module.
5
- #####################################################################
6
- require 'windows/msvcrt/string'
7
- require 'test/unit'
8
-
9
- class TC_Windows_MSVCRT_String < Test::Unit::TestCase
10
- include Windows::MSVCRT::String
11
-
12
- def setup
13
- @buf = 0.chr * 260
14
- @str = 'hello'
15
- end
16
-
17
- def test_method_constants
18
- assert_not_nil(Strcmp)
19
- assert_not_nil(Strcpy)
20
- assert_not_nil(Strcspn)
21
- assert_not_nil(Strlen)
22
- assert_not_nil(Strncpy)
23
- assert_not_nil(Strrchr)
24
- assert_not_nil(Strrev)
25
- assert_not_nil(Strtok)
26
- end
27
-
28
- def test_strchr
29
- assert(self.respond_to?(:strchr, true))
30
- assert_equal('llo', strchr('hello', 108))
31
- assert_equal(nil, strchr('hello', 120))
32
- end
33
-
34
- def test_strchr_with_zero
35
- assert_nil(strchr(0, 'l'[0]))
36
- assert_nil(strchr('hello', 0))
37
- end
38
-
39
- def test_strchr_expected_errors
40
- assert_raise(ArgumentError){ strchr }
41
- assert_raise(ArgumentError){ strchr('hello') }
42
- end
43
-
44
- def test_strcmp
45
- assert(self.respond_to?(:strcmp, true))
46
- assert_equal(-1, strcmp('alpha', 'beta'))
47
- assert_equal(1, strcmp('beta', 'alpha'))
48
- assert_equal(0, strcmp('alpha', 'alpha'))
49
- end
50
-
51
- def test_strcmp_expected_errors
52
- assert_raise(ArgumentError){ strcmp }
53
- assert_raise(ArgumentError){ strcmp('alpha') }
54
- end
55
-
56
- def test_strcpy
57
- assert(self.respond_to?(:strcpy, true))
58
- assert_kind_of(Fixnum, strcpy(@buf, ['hello'].pack('p*').unpack('L')[0]))
59
- assert_equal('hello', @buf.strip)
60
- end
61
-
62
- def test_strcspn
63
- assert(self.respond_to?(:strcspn, true))
64
- assert_equal(3, strcspn('abcxyz123', '&^(x'))
65
- assert_equal(9, strcspn('abcxyz123', '&^(('))
66
- end
67
-
68
- def test_strcspn_expected_errors
69
- assert_raise(ArgumentError){ strcspn }
70
- assert_raise(ArgumentError){ strcspn('alpha') }
71
- end
72
-
73
- def test_strlen
74
- assert(self.respond_to?(:strlen, true))
75
- assert_equal(5, strlen('hello'))
76
- assert_equal(0, strlen(''))
77
- end
78
-
79
- def test_strlen_expected_errors
80
- assert_raise(ArgumentError){ strlen }
81
- assert_raise(ArgumentError){ strlen('a', 'b') }
82
- end
83
-
84
- def test_strncpy
85
- assert(self.respond_to?(:strncpy, true))
86
- assert_equal('alp', strncpy(@buf, 'alpha', 3))
87
- assert_equal('alp', @buf.strip)
88
- end
89
-
90
- def teardown
91
- @buf = nil
92
- @str = nil
93
- end
94
- end
1
+ #####################################################################
2
+ # tc_msvcrt_string.rb
3
+ #
4
+ # Test case for the Windows::MSVCRT::String module.
5
+ #####################################################################
6
+ require 'windows/msvcrt/string'
7
+ require 'test/unit'
8
+
9
+ class TC_Windows_MSVCRT_String < Test::Unit::TestCase
10
+ include Windows::MSVCRT::String
11
+
12
+ def setup
13
+ @buf = 0.chr * 260
14
+ @str = 'hello'
15
+ end
16
+
17
+ def test_method_constants
18
+ assert_not_nil(Strcmp)
19
+ assert_not_nil(Strcpy)
20
+ assert_not_nil(Strcspn)
21
+ assert_not_nil(Strlen)
22
+ assert_not_nil(Strncpy)
23
+ assert_not_nil(Strrchr)
24
+ assert_not_nil(Strrev)
25
+ assert_not_nil(Strtok)
26
+ end
27
+
28
+ def test_strchr
29
+ assert(self.respond_to?(:strchr, true))
30
+ assert_equal('llo', strchr('hello', 108))
31
+ assert_equal(nil, strchr('hello', 120))
32
+ end
33
+
34
+ def test_strchr_with_zero
35
+ assert_nil(strchr(0, 'l'[0]))
36
+ assert_nil(strchr('hello', 0))
37
+ end
38
+
39
+ def test_strchr_expected_errors
40
+ assert_raise(ArgumentError){ strchr }
41
+ assert_raise(ArgumentError){ strchr('hello') }
42
+ end
43
+
44
+ def test_strcmp
45
+ assert(self.respond_to?(:strcmp, true))
46
+ assert_equal(-1, strcmp('alpha', 'beta'))
47
+ assert_equal(1, strcmp('beta', 'alpha'))
48
+ assert_equal(0, strcmp('alpha', 'alpha'))
49
+ end
50
+
51
+ def test_strcmp_expected_errors
52
+ assert_raise(ArgumentError){ strcmp }
53
+ assert_raise(ArgumentError){ strcmp('alpha') }
54
+ end
55
+
56
+ def test_strcpy
57
+ assert(self.respond_to?(:strcpy, true))
58
+ assert_kind_of(Fixnum, strcpy(@buf, ['hello'].pack('p*').unpack('L')[0]))
59
+ assert_equal('hello', @buf.strip)
60
+ end
61
+
62
+ def test_strcspn
63
+ assert(self.respond_to?(:strcspn, true))
64
+ assert_equal(3, strcspn('abcxyz123', '&^(x'))
65
+ assert_equal(9, strcspn('abcxyz123', '&^(('))
66
+ end
67
+
68
+ def test_strcspn_expected_errors
69
+ assert_raise(ArgumentError){ strcspn }
70
+ assert_raise(ArgumentError){ strcspn('alpha') }
71
+ end
72
+
73
+ def test_strlen
74
+ assert(self.respond_to?(:strlen, true))
75
+ assert_equal(5, strlen('hello'))
76
+ assert_equal(0, strlen(''))
77
+ end
78
+
79
+ def test_strlen_expected_errors
80
+ assert_raise(ArgumentError){ strlen }
81
+ assert_raise(ArgumentError){ strlen('a', 'b') }
82
+ end
83
+
84
+ def test_strncpy
85
+ assert(self.respond_to?(:strncpy, true))
86
+ assert_equal('alp', strncpy(@buf, 'alpha', 3))
87
+ assert_equal('alp', @buf.strip)
88
+ end
89
+
90
+ def teardown
91
+ @buf = nil
92
+ @str = nil
93
+ end
94
+ end