File: virtual_root.t

package info (click to toggle)
libparse-win32registry-perl 1.0-2%2Bdeb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 928 kB
  • sloc: perl: 8,646; makefile: 8
file content (70 lines) | stat: -rw-r--r-- 2,160 bytes parent folder | download | duplicates (5)
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
use strict;
use warnings;

use Test::More 'no_plan';
use Parse::Win32Registry 0.60;

sub find_file
{
    my $filename = shift;
    return -d 't' ? "t/$filename" : $filename;
}

{
    my @tests = (
        [
            'fake_user_dat.rf', 'HKEY_USERS', '',
            ['.DEFAULT', 'Software'],
        ],
        [
            'fake_system_dat.rf', 'HKEY_LOCAL_MACHINE', '',
            ['Software', 'System'],
        ],
        [
            'fake_sam.rf', 'HKEY_LOCAL_MACHINE\\SAM', 'SAM',
            ['SAM'],
        ],
        [
            'fake_security.rf', 'HKEY_LOCAL_MACHINE\\SECURITY', 'SECURITY',
            ['Cache', 'Policy', 'RXACT'],
        ],
        [
            'fake_software.rf', 'HKEY_LOCAL_MACHINE\\SOFTWARE', '$$$PROTO.HIV',
            ['Microsoft', 'Policies'],
        ],
        [
            'fake_system.rf', 'HKEY_LOCAL_MACHINE\\SYSTEM', '$$$PROTO.HIV',
            ['ControlSet001', 'Select'],
        ],
        [
            'fake_ntuser_dat.rf', 'HKEY_CURRENT_USER', '$$$PROTO.HIV',
            ['Control Panel', 'Environment', 'Software'],
        ],
        [
            'fake_usrclass_dat.rf', 'HKEY_CLASSES_ROOT', 'S-1-5-21-123456789-123456789-123456789-1000_Classes',
            ['CLSID'],
        ],
    );

    foreach my $test (@tests) {
        my ($filename, $virtual_root, $original_root_key_name, $key_names) =
            @$test;
        $filename = find_file($filename);

        my $registry = Parse::Win32Registry->new($filename);
        ok(defined($registry), 'registry defined (valid registry)');
        my $root_key = $registry->get_virtual_root_key;
        ok(defined($root_key), 'root key defined (valid key)');
        is($root_key->get_name, $virtual_root,
            "root key get_name (virtual name)");
        isnt($root_key->get_name, $original_root_key_name,
            "root key get_name (original name)");

        foreach my $key_name (@$key_names) {
            my $key = $root_key->get_subkey($key_name);
            my $virtual_path = "$virtual_root\\$key_name";
            is($key->get_path, $virtual_path,
                "subkey get_path (virtual path)");
        }
    }
}