|
19 | 19 |
|
20 | 20 | package org.elasticsearch.painless;
|
21 | 21 |
|
| 22 | +import org.elasticsearch.painless.spi.Whitelist; |
| 23 | +import org.elasticsearch.painless.spi.WhitelistLoader; |
| 24 | +import org.elasticsearch.script.ScriptContext; |
| 25 | + |
| 26 | +import java.util.ArrayList; |
22 | 27 | import java.util.Arrays;
|
23 | 28 | import java.util.Collections;
|
24 | 29 | import java.util.HashMap;
|
| 30 | +import java.util.List; |
25 | 31 | import java.util.Map;
|
26 | 32 | import java.util.regex.Pattern;
|
27 | 33 |
|
28 | 34 | public class AugmentationTests extends ScriptTestCase {
|
29 | 35 |
|
| 36 | + @Override |
| 37 | + protected Map<ScriptContext<?>, List<Whitelist>> scriptContexts() { |
| 38 | + Map<ScriptContext<?>, List<Whitelist>> contexts = super.scriptContexts(); |
| 39 | + List<Whitelist> digestWhitelist = new ArrayList<>(Whitelist.BASE_WHITELISTS); |
| 40 | + digestWhitelist.add(WhitelistLoader.loadFromResourceFiles(Whitelist.class, "org.elasticsearch.ingest.txt")); |
| 41 | + contexts.put(DigestTestScript.CONTEXT, digestWhitelist); |
| 42 | + |
| 43 | + return contexts; |
| 44 | + } |
| 45 | + |
| 46 | + public abstract static class DigestTestScript { |
| 47 | + public static final String[] PARAMETERS = {}; |
| 48 | + public abstract String execute(); |
| 49 | + public interface Factory { |
| 50 | + DigestTestScript newInstance(); |
| 51 | + } |
| 52 | + |
| 53 | + public static final ScriptContext<DigestTestScript.Factory> CONTEXT = |
| 54 | + new ScriptContext<>("test", DigestTestScript.Factory.class); |
| 55 | + } |
| 56 | + |
30 | 57 | public void testStatic() {
|
31 | 58 | assertEquals(1, exec("ArrayList l = new ArrayList(); l.add(1); return l.getLength();"));
|
32 | 59 | assertEquals(1, exec("ArrayList l = new ArrayList(); l.add(1); return l.length;"));
|
@@ -238,4 +265,24 @@ public void testString_SplitOnToken() {
|
238 | 265 | );
|
239 | 266 | }
|
240 | 267 | }
|
| 268 | + |
| 269 | + public String execDigest(String script) { |
| 270 | + return scriptEngine.compile( |
| 271 | + "digest_test", |
| 272 | + script, |
| 273 | + DigestTestScript.CONTEXT, Collections.emptyMap() |
| 274 | + ).newInstance().execute(); |
| 275 | + } |
| 276 | + |
| 277 | + public void testSha1() { |
| 278 | + assertEquals("0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33", execDigest("'foo'.sha1()")); |
| 279 | + assertEquals("62cdb7020ff920e5aa642c3d4066950dd1f01f4d", execDigest("'bar'.sha1()")); |
| 280 | + assertEquals("5f5513f8822fdbe5145af33b64d8d970dcf95c6e", execDigest("'foobarbaz'.sha1()")); |
| 281 | + } |
| 282 | + |
| 283 | + public void testSha256() { |
| 284 | + assertEquals("2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae", execDigest("'foo'.sha256()")); |
| 285 | + assertEquals("fcde2b2edba56bf408601fb721fe9b5c338d10ee429ea04fae5511b68fbf8fb9", execDigest("'bar'.sha256()")); |
| 286 | + assertEquals("97df3588b5a3f24babc3851b372f0ba71a9dcdded43b14b9d06961bfc1707d9d", execDigest("'foobarbaz'.sha256()")); |
| 287 | + } |
241 | 288 | }
|
0 commit comments