← 返回首页
Test that the #@script language directive works · scijava/scijava-common@5a4d2c3 · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

Commit 5a4d2c3

Browse files
andcommitted
Test that the #@script language directive works
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9a62ef8 commit 5a4d2c3

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

‎src/test/java/org/scijava/script/ScriptInfoTest.java‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131

3232
import static org.junit.Assert.assertEquals;
3333
import static org.junit.Assert.assertFalse;
34+
import static org.junit.Assert.assertNotNull;
35+
import static org.junit.Assert.assertNull;
3436
import static org.junit.Assert.assertSame;
3537
import static org.junit.Assert.assertTrue;
3638
import static org.junit.Assert.fail;
@@ -337,6 +339,35 @@ public void testScriptDirective() {
337339
assertEquals("bar", info.get("foo"));
338340
}
339341

342+
/** Tests the {@code language} key of the {@code #@script} directive. */
343+
@Test
344+
public void testScriptDirectiveLanguage() {
345+
// Use a .txt extension so language is NOT auto-inferred from the path.
346+
// Confirm it starts out null (no language for .txt).
347+
final String scriptByName = "#@script(language=\"BindingSizes\")\nWOOT\n";
348+
final ScriptInfo infoByName =
349+
new ScriptInfo(context, "test.txt", new StringReader(scriptByName));
350+
assertNull(infoByName.getLanguage()); // no language yet
351+
infoByName.inputs(); // trigger parsing
352+
assertNotNull(infoByName.getLanguage());
353+
assertTrue(infoByName.getLanguage().getNames().contains("BindingSizes"));
354+
355+
// Also confirm lookup by file extension works.
356+
final String scriptByExt = "#@script(language=\"bsizes\")\nWOOT\n";
357+
final ScriptInfo infoByExt =
358+
new ScriptInfo(context, "test.txt", new StringReader(scriptByExt));
359+
infoByExt.inputs();
360+
assertNotNull(infoByExt.getLanguage());
361+
assertTrue(infoByExt.getLanguage().getExtensions().contains("bsizes"));
362+
363+
// Unknown language name should leave language unset (null for .txt path).
364+
final String scriptBogus = "#@script(language=\"no-such-language\")\nWOOT\n";
365+
final ScriptInfo infoBogus =
366+
new ScriptInfo(context, "test.txt", new StringReader(scriptBogus));
367+
infoBogus.inputs();
368+
assertNull(infoBogus.getLanguage());
369+
}
370+
340371
/**
341372
* Ensures the ScriptInfos Reader can be reused for multiple executions of the
342373
* script.

0 commit comments

Comments
 (0)

Footer

© 2026 GitHub, Inc.