[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] storm/org/nongnu/storm BlockId.java BlockId.test
From: |
Benja Fallenstein |
Subject: |
[Gzz-commits] storm/org/nongnu/storm BlockId.java BlockId.test |
Date: |
Tue, 15 Apr 2003 04:48:11 -0400 |
CVSROOT: /cvsroot/storm
Module name: storm
Changes by: Benja Fallenstein <address@hidden> 03/04/15 04:48:11
Modified files:
org/nongnu/storm: BlockId.java BlockId.test
Log message:
disallow x- and x. content types
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/storm/storm/org/nongnu/storm/BlockId.java.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/storm/storm/org/nongnu/storm/BlockId.test.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: storm/org/nongnu/storm/BlockId.java
diff -u storm/org/nongnu/storm/BlockId.java:1.8
storm/org/nongnu/storm/BlockId.java:1.9
--- storm/org/nongnu/storm/BlockId.java:1.8 Tue Apr 8 04:03:32 2003
+++ storm/org/nongnu/storm/BlockId.java Tue Apr 15 04:48:11 2003
@@ -52,7 +52,9 @@
int dot = uri.lastIndexOf('.');
int comma = uri.lastIndexOf(',');
-
+
+ checkContentType(uri);
+
if(!uri.startsWith(PREFIX) || dot < 0 ||
comma < 0 || dot < comma)
throw new IllegalArgumentException("Bad block URN: "+uri);
@@ -64,6 +66,8 @@
public BlockId(String contentType,
byte[] sha1, byte[] tigertree) {
+ checkContentType(contentType);
+
this.sha1 = sha1;
this.tigertree = tigertree;
this.contentType = contentType;
@@ -154,6 +158,16 @@
dig_tt.digest());
}
+
+ private void checkContentType(String s) {
+ s = s.toLowerCase();
+ int slash = s.indexOf('/');
+ if(s.substring(slash+1, slash+3).equals("x-") ||
+ s.substring(slash+1, slash+3).equals("x."))
+ throw new IllegalArgumentException("x- and x. content types "
+ + "not allowed in "
+ + "Storm URNs");
+ }
/** Create a new SHA-1 message digest; throw an error
* if this algorithm isn't available.
Index: storm/org/nongnu/storm/BlockId.test
diff -u storm/org/nongnu/storm/BlockId.test:1.5
storm/org/nongnu/storm/BlockId.test:1.6
--- storm/org/nongnu/storm/BlockId.test:1.5 Tue Apr 8 04:03:32 2003
+++ storm/org/nongnu/storm/BlockId.test Tue Apr 15 04:48:11 2003
@@ -20,7 +20,7 @@
#
#
-import java
+import java, com
from org.nongnu.storm import BlockId
from jarray import array
@@ -58,6 +58,39 @@
assert id3.getContentType() == "text/plain"
assert id != id3
assert id.hashCode() != id3.hashCode()
+
+def testXType():
+ """X- content types must throw exceptions"""
+
+ BlockId("urn:x-storm:1.0:text/plain,"
+ "u7uu5zpmkoeykkwhxd4unlqycc36gvl7."
+ "jtlcbiy2r6gfsznbgj42yzqbqk4ti373bqs5qyy")
+
+ try: BlockId("urn:x-storm:1.0:text/x-java,"
+ "u7uu5zpmkoeykkwhxd4unlqycc36gvl7."
+ "jtlcbiy2r6gfsznbgj42yzqbqk4ti373bqs5qyy")
+ except java.lang.IllegalArgumentException: pass
+ else: assert 0
+
+ try: BlockId("urn:x-storm:1.0:text/x.java,"
+ "u7uu5zpmkoeykkwhxd4unlqycc36gvl7."
+ "jtlcbiy2r6gfsznbgj42yzqbqk4ti373bqs5qyy")
+ except java.lang.IllegalArgumentException: pass
+ else: assert 0
+
+ sha1 = com.bitzi.util.Base32.decode(
+ "u7uu5zpmkoeykkwhxd4unlqycc36gvl7")
+ tiger = com.bitzi.util.Base32.decode(
+ "jtlcbiy2r6gfsznbgj42yzqbqk4ti373bqs5qyy")
+ BlockId("text/plain", sha1, tiger)
+
+ try: BlockId("text/x-java", sha1, tiger)
+ except java.lang.IllegalArgumentException: pass
+ else: assert 0
+
+ try: BlockId("text/x.java", sha1, tiger)
+ except java.lang.IllegalArgumentException: pass
+ else: assert 0
def testGetIdForData():
id_1 = BlockId(uri_1)