This file is indexed.

/usr/share/doc/junit4/api/src-html/org/junit/ClassRule.html is in junit4-doc 4.12-6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
</head>
<body>
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span>package org.junit;<a name="line.1"></a>
<span class="sourceLineNo">002</span><a name="line.2"></a>
<span class="sourceLineNo">003</span>import java.lang.annotation.ElementType;<a name="line.3"></a>
<span class="sourceLineNo">004</span>import java.lang.annotation.Retention;<a name="line.4"></a>
<span class="sourceLineNo">005</span>import java.lang.annotation.RetentionPolicy;<a name="line.5"></a>
<span class="sourceLineNo">006</span>import java.lang.annotation.Target;<a name="line.6"></a>
<span class="sourceLineNo">007</span><a name="line.7"></a>
<span class="sourceLineNo">008</span>/**<a name="line.8"></a>
<span class="sourceLineNo">009</span> * Annotates static fields that reference rules or methods that return them. A field must be public,<a name="line.9"></a>
<span class="sourceLineNo">010</span> * static, and a subtype of {@link org.junit.rules.TestRule}.  A method must be public static, and return<a name="line.10"></a>
<span class="sourceLineNo">011</span> * a subtype of {@link org.junit.rules.TestRule}.<a name="line.11"></a>
<span class="sourceLineNo">012</span> * &lt;p&gt;<a name="line.12"></a>
<span class="sourceLineNo">013</span> * The {@link org.junit.runners.model.Statement} passed<a name="line.13"></a>
<span class="sourceLineNo">014</span> * to the {@link org.junit.rules.TestRule} will run any {@link BeforeClass} methods,<a name="line.14"></a>
<span class="sourceLineNo">015</span> * then the entire body of the test class (all contained methods, if it is<a name="line.15"></a>
<span class="sourceLineNo">016</span> * a standard JUnit test class, or all contained classes, if it is a<a name="line.16"></a>
<span class="sourceLineNo">017</span> * {@link org.junit.runners.Suite}), and finally any {@link AfterClass} methods.<a name="line.17"></a>
<span class="sourceLineNo">018</span> * &lt;p&gt;<a name="line.18"></a>
<span class="sourceLineNo">019</span> * The statement passed to the {@link org.junit.rules.TestRule} will never throw an exception,<a name="line.19"></a>
<span class="sourceLineNo">020</span> * and throwing an exception from the {@link org.junit.rules.TestRule} will result in undefined<a name="line.20"></a>
<span class="sourceLineNo">021</span> * behavior.  This means that some {@link org.junit.rules.TestRule}s, such as<a name="line.21"></a>
<span class="sourceLineNo">022</span> * {@link org.junit.rules.ErrorCollector},<a name="line.22"></a>
<span class="sourceLineNo">023</span> * {@link org.junit.rules.ExpectedException},<a name="line.23"></a>
<span class="sourceLineNo">024</span> * and {@link org.junit.rules.Timeout},<a name="line.24"></a>
<span class="sourceLineNo">025</span> * have undefined behavior when used as {@link ClassRule}s.<a name="line.25"></a>
<span class="sourceLineNo">026</span> * &lt;p&gt;<a name="line.26"></a>
<span class="sourceLineNo">027</span> * If there are multiple<a name="line.27"></a>
<span class="sourceLineNo">028</span> * annotated {@link ClassRule}s on a class, they will be applied in an order<a name="line.28"></a>
<span class="sourceLineNo">029</span> * that depends on your JVM's implementation of the reflection API, which is<a name="line.29"></a>
<span class="sourceLineNo">030</span> * undefined, in general. However, Rules defined by fields will always be applied<a name="line.30"></a>
<span class="sourceLineNo">031</span> * before Rules defined by methods.<a name="line.31"></a>
<span class="sourceLineNo">032</span> * &lt;p&gt;<a name="line.32"></a>
<span class="sourceLineNo">033</span> * For example, here is a test suite that connects to a server once before<a name="line.33"></a>
<span class="sourceLineNo">034</span> * all the test classes run, and disconnects after they are finished:<a name="line.34"></a>
<span class="sourceLineNo">035</span> * &lt;pre&gt;<a name="line.35"></a>
<span class="sourceLineNo">036</span> * &amp;#064;RunWith(Suite.class)<a name="line.36"></a>
<span class="sourceLineNo">037</span> * &amp;#064;SuiteClasses({A.class, B.class, C.class})<a name="line.37"></a>
<span class="sourceLineNo">038</span> * public class UsesExternalResource {<a name="line.38"></a>
<span class="sourceLineNo">039</span> *     public static Server myServer= new Server();<a name="line.39"></a>
<span class="sourceLineNo">040</span> *<a name="line.40"></a>
<span class="sourceLineNo">041</span> *     &amp;#064;ClassRule<a name="line.41"></a>
<span class="sourceLineNo">042</span> *     public static ExternalResource resource= new ExternalResource() {<a name="line.42"></a>
<span class="sourceLineNo">043</span> *       &amp;#064;Override<a name="line.43"></a>
<span class="sourceLineNo">044</span> *       protected void before() throws Throwable {<a name="line.44"></a>
<span class="sourceLineNo">045</span> *          myServer.connect();<a name="line.45"></a>
<span class="sourceLineNo">046</span> *      }<a name="line.46"></a>
<span class="sourceLineNo">047</span> *<a name="line.47"></a>
<span class="sourceLineNo">048</span> *      &amp;#064;Override<a name="line.48"></a>
<span class="sourceLineNo">049</span> *      protected void after() {<a name="line.49"></a>
<span class="sourceLineNo">050</span> *              myServer.disconnect();<a name="line.50"></a>
<span class="sourceLineNo">051</span> *      }<a name="line.51"></a>
<span class="sourceLineNo">052</span> *   };<a name="line.52"></a>
<span class="sourceLineNo">053</span> * }<a name="line.53"></a>
<span class="sourceLineNo">054</span> * &lt;/pre&gt;<a name="line.54"></a>
<span class="sourceLineNo">055</span> * &lt;p&gt;<a name="line.55"></a>
<span class="sourceLineNo">056</span> * and the same using a method<a name="line.56"></a>
<span class="sourceLineNo">057</span> * &lt;pre&gt;<a name="line.57"></a>
<span class="sourceLineNo">058</span> * &amp;#064;RunWith(Suite.class)<a name="line.58"></a>
<span class="sourceLineNo">059</span> * &amp;#064;SuiteClasses({A.class, B.class, C.class})<a name="line.59"></a>
<span class="sourceLineNo">060</span> * public class UsesExternalResource {<a name="line.60"></a>
<span class="sourceLineNo">061</span> *     public static Server myServer= new Server();<a name="line.61"></a>
<span class="sourceLineNo">062</span> *<a name="line.62"></a>
<span class="sourceLineNo">063</span> *     &amp;#064;ClassRule<a name="line.63"></a>
<span class="sourceLineNo">064</span> *     public static ExternalResource getResource() {<a name="line.64"></a>
<span class="sourceLineNo">065</span> *         return new ExternalResource() {<a name="line.65"></a>
<span class="sourceLineNo">066</span> *             &amp;#064;Override<a name="line.66"></a>
<span class="sourceLineNo">067</span> *             protected void before() throws Throwable {<a name="line.67"></a>
<span class="sourceLineNo">068</span> *                 myServer.connect();<a name="line.68"></a>
<span class="sourceLineNo">069</span> *             }<a name="line.69"></a>
<span class="sourceLineNo">070</span> *<a name="line.70"></a>
<span class="sourceLineNo">071</span> *             &amp;#064;Override<a name="line.71"></a>
<span class="sourceLineNo">072</span> *             protected void after() {<a name="line.72"></a>
<span class="sourceLineNo">073</span> *                 myServer.disconnect();<a name="line.73"></a>
<span class="sourceLineNo">074</span> *             }<a name="line.74"></a>
<span class="sourceLineNo">075</span> *         };<a name="line.75"></a>
<span class="sourceLineNo">076</span> *     }<a name="line.76"></a>
<span class="sourceLineNo">077</span> * }<a name="line.77"></a>
<span class="sourceLineNo">078</span> * &lt;/pre&gt;<a name="line.78"></a>
<span class="sourceLineNo">079</span> * &lt;p&gt;<a name="line.79"></a>
<span class="sourceLineNo">080</span> * For more information and more examples, see {@link org.junit.rules.TestRule}.<a name="line.80"></a>
<span class="sourceLineNo">081</span> *<a name="line.81"></a>
<span class="sourceLineNo">082</span> * @since 4.9<a name="line.82"></a>
<span class="sourceLineNo">083</span> */<a name="line.83"></a>
<span class="sourceLineNo">084</span>@Retention(RetentionPolicy.RUNTIME)<a name="line.84"></a>
<span class="sourceLineNo">085</span>@Target({ElementType.FIELD, ElementType.METHOD})<a name="line.85"></a>
<span class="sourceLineNo">086</span>public @interface ClassRule {<a name="line.86"></a>
<span class="sourceLineNo">087</span>}<a name="line.87"></a>




























































</pre>
</div>
</body>
</html>