1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.configuration;
16
17 import java.util.ArrayList;
18 import java.util.Collections;
19 import java.util.HashMap;
20 import java.util.List;
21
22 import org.htmlunit.javascript.HtmlUnitScriptable;
23 import org.junit.Assert;
24 import org.junit.Test;
25
26
27
28
29
30
31 public class WorkerJavaScriptConfigurationTest {
32
33
34
35
36
37 @Test
38 public void treeOrder() {
39 final List<String> defined = new ArrayList<>(WorkerJavaScriptConfiguration.CLASSES_.length);
40
41 final HashMap<Integer, List<String>> levels = new HashMap<>();
42 for (final Class<?> c : WorkerJavaScriptConfiguration.CLASSES_) {
43 defined.add(c.getSimpleName());
44
45 int level = 1;
46 Class<?> parent = c.getSuperclass();
47 while (parent != HtmlUnitScriptable.class) {
48 level++;
49 parent = parent.getSuperclass();
50 }
51
52 List<String> clsAtLevel = levels.get(level);
53 if (clsAtLevel == null) {
54 clsAtLevel = new ArrayList<>();
55 levels.put(level, clsAtLevel);
56 }
57 clsAtLevel.add(c.getSimpleName());
58 }
59
60 final List<String> all = new ArrayList<>(WorkerJavaScriptConfiguration.CLASSES_.length);
61 for (int level = 1; level <= levels.size(); level++) {
62 final List<String> clsAtLevel = levels.get(level);
63 Collections.sort(clsAtLevel);
64 all.addAll(clsAtLevel);
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 }
86 Assert.assertEquals(all, defined);
87 }
88 }