From a39716f957d0d3f8cc5438992eb3b6e6f1678d40 Mon Sep 17 00:00:00 2001 From: "Patrick D. Hunt" <phunt@apache.org> Date: Fri, 25 Jan 2013 07:08:28 +0000 Subject: [PATCH] ZOOKEEPER-1628. Documented list of allowable characters in ZK doc not in line with code (Gabriel Reid via phunt) git-svn-id: https://svn.apache.org/repos/asf/zookeeper/trunk@1438356 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 + docs/index.pdf | Bin 12369 -> 12369 bytes docs/javaExample.pdf | Bin 33852 -> 33852 bytes docs/linkmap.pdf | Bin 10552 -> 10552 bytes docs/recipes.pdf | Bin 33886 -> 33886 bytes docs/releasenotes.pdf | Bin 61353 -> 61353 bytes docs/zookeeperAdmin.pdf | Bin 75639 -> 75639 bytes docs/zookeeperHierarchicalQuorums.pdf | Bin 6655 -> 6655 bytes docs/zookeeperInternals.pdf | Bin 48834 -> 48834 bytes docs/zookeeperJMX.pdf | Bin 16482 -> 16482 bytes docs/zookeeperObservers.pdf | Bin 12873 -> 12873 bytes docs/zookeeperOver.pdf | Bin 302491 -> 302491 bytes docs/zookeeperProgrammers.html | 6 +- docs/zookeeperProgrammers.pdf | Bin 135750 -> 135748 bytes docs/zookeeperQuotas.pdf | Bin 11262 -> 11262 bytes docs/zookeeperStarted.pdf | Bin 27590 -> 27590 bytes docs/zookeeperTutorial.pdf | Bin 30504 -> 30504 bytes .../content/xdocs/zookeeperProgrammers.xml | 6 +- .../apache/zookeeper/common/PathUtils.java | 8 +- .../zookeeper/common/PathUtilsTest.java | 128 ++++++++++++++++++ 20 files changed, 141 insertions(+), 10 deletions(-) create mode 100644 src/java/test/org/apache/zookeeper/common/PathUtilsTest.java diff --git a/CHANGES.txt b/CHANGES.txt index f0c6400b..14fe140d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -311,6 +311,9 @@ BUGFIXES: ZK-1504) opens selectors but never closes them (Thawan Kooburat via phunt) + ZOOKEEPER-1628. Documented list of allowable characters in ZK doc + not in line with code (Gabriel Reid via phunt) + IMPROVEMENTS: ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports, diff --git a/docs/index.pdf b/docs/index.pdf index ad6b453a17b4f5d66b2eb171e9e1b2f382514743..8a72ad3eec8aaa5a1bb059e65f8dc91146526a7d 100644 GIT binary patch delta 183 zcmcbZa4})RT5e+lLn9L-V*@i|^Nl+`^9UI08W`#tnS>Y_TN#*H8Jln3%{ze+Lv(U9 zzb=O0<{A7^3h|DPriPA|F3!eAE>3O+&Ti)BhUU)B=BBQuW<~~1t`>F*HUyQ#a@pB& b6_+Fyl~fd^rg0e>8e5uhsj9mAyKw;kgE}sf delta 183 zcmcbZa4})RT5cmlLnCt|V*?9ggN-{r^9UH}8XD>vnTHq|TNzkb85?Zg%{ze+Lv(U9 zzb=O0<{A7^3h^!`rf%jgmWD1C&KBlQ&W3JoE~ch#E|w;4MlQxqW=3`jHUyQ#a@pB& b6_+Fyl~fd^rg0e>8e5uhsj9mAyKw;ki)b#s diff --git a/docs/javaExample.pdf b/docs/javaExample.pdf index a8d1f22565a6911718a5e4ac297c1816f7098b8a..36cfbd0a7d11af18393ee4d5d3fa4420e90ce365 100644 GIT binary patch delta 161 zcmdnf!L+A?X+k@<v4NqHiIK5^nX$>nNoRQkjCBnRb&X6yjEt=e%&d$}Hs|wBV8jre z%+IfjA-LIxe`1NVrLmivp{bdRo1v?@sgaA3xwDC(iHn7sxwEsep|OjFoq`P^C6g6e FWB~ifCyW39 delta 161 zcmdnf!L+A?X+k@<k)ffHxskDfg^~HjNoRQkjC2hRb&bqJjEt=eEUb*oH|O(CV8jre z%+IfjA-LIxe`1NVk)fHPk&BVJn~Sl9o2jd*xtp1>lclAFv#EibshN?poq`P^C6g6e FWB~nKCv*S+ diff --git a/docs/linkmap.pdf b/docs/linkmap.pdf index b5eff4b806cec92efb3fb142f4b90f24961f59d1..fa848a70b6aee44443a74430b12d8b34d6de9e1c 100644 GIT binary patch delta 158 zcmdlHv?FLjKew@gp^=G^v4NSf$;Me%c?67g4GeXSOhSx|tqjbpj7>Jz^G;yI5S=W~ zuZtnLIflPZ(#h4p%+S)@$jQ;!($K=h&D_<^$->;#)yT-u(b&z=z|>B`hJcdEGMX{~ Dhe{@6 delta 158 zcmdlHv?FLjKev&gp^>?fv4Mq=`NmmSc?67f4GndT%tMTftqd%zjLbLJ^G;yI5S=W~ zuZtnLIflPZ(#g=x!qV8$+||*<$imIZ($d-0(b3J^+{n$v(#^uq($r4DhJcdEGMX{~ Dp{XX_ diff --git a/docs/recipes.pdf b/docs/recipes.pdf index 93a2760b46d6a7d1abe73c974f0f15877a269692..5df89f680be19842252b30846f4dc35ba4367b95 100644 GIT binary patch delta 181 zcmccD!E~>KX~G09V*^7Y6C+~-Gvkf3uJiC4>lzs98kvL`8Cw~cSs8C`;GM{bE;w0% zUk_bub1eU&l6Y4G6H`k^BXa{w3l|e76H^N_GgC_!GbdwbHzP|6M;AK<8-hw=x$Nw? aic1oUN-By{)3}TcEe#F1R8?L5-M9d`5iLmo delta 181 zcmccD!E~>KX~G09BSS+Yb0cE|3!{y*uJiC4=^7g98kvU}8Cw}xSQ%|@;GM{bE;w0% zUk_bub1eU&l6XfWBS&)=Cj$#3XD3THQv(B6Q&&?<Lq}s%Ckq2}XIDD~8-hw=x$Nw? aic1oUN-By{)3}TcEe#F1R8?L5-M9eF1}%30 diff --git a/docs/releasenotes.pdf b/docs/releasenotes.pdf index 618b47e4aefda40dcf16b29eaeecfdca1a28b57f..a0887a2e3fb28b0e1af7003e7d5ae9c5da96434a 100644 GIT binary patch delta 161 zcmZ2^pLykd<_Ue=#s-E)CPu~vX2up9XI|kEFxE9N)HN~*F*3F?FtakY*j&pyfe}M= zvMj$YhT!HX{tx$^-3-lKOdOq@jLj^aT%AqKO$;nuU7g&F932e}O-xOl?G$VXDVf~+ GUIqZUKPo!_ delta 161 zcmZ2^pLykd<_Ue=Muvt)=0?T_7RDwUXI|kEFw!+N)HN~>F*3F?u&^>V*<8yzfe}M= zvMj$YhT!HX{tx$^O&pCZ3{9O(EG>*I9Ni3!-Ha_=3@sd;T%4U;&0H)U?G$VXDVf~+ GUIqZMH!3>- diff --git a/docs/zookeeperAdmin.pdf b/docs/zookeeperAdmin.pdf index ed595d2f883323692117b0e25d12117e70c558c6..c67e2c84fe1cf5130c5ae226548568821db72eb8 100644 GIT binary patch delta 166 zcmex<j^+C~mI)KMjSUQqOpJ^T%!~~-&c4PYV61CksB2^rVq|P(U}j}(u(^?U0wad# zWJP{m48i6&{_S!6jJw30E!<394Gb-f9No;EoeYi4EDc>O44jP}&5ewV%`Hq!>=bMW LDVZLv&L{%_Z9ORe delta 166 zcmex<j^+C~mI)KMjSLNq%#Dl<ER2me&c4PYV5DnksB2^%Vq|P(U}0r!yt$Eg0wad# zWJP{m48i6&{_S!6jJw30%}t$5&5aCPjEv0<O`VKfEX<4y%?(XVEDTJYEiDX8?G$VX LDVZLv&L{%_Wosy( diff --git a/docs/zookeeperHierarchicalQuorums.pdf b/docs/zookeeperHierarchicalQuorums.pdf index 61ea23c6e1ec3460905dbaf8906bfbe91e01eb02..efdb8e4b056e721454b2cf993863aab4d0c6e797 100644 GIT binary patch delta 182 zcmexw{NH%ORBmGfLn9L-V*@i|(~S#m^9UI08W`#tnS>Y_TN#*H8JlkI=AFQZAv#%` zUl&7ga|XX9SDc}viIbD5k*TAZftiJii=l~;nWd$(p{1*Vk%fV&nTef(4M8QbTy}O` Z#U+VFB^5=fX<TN8CWc(9s;>TSTmY67ENB1# delta 182 zcmexw{NH%ORBj_fLnCt|V*?9g!;K4W^9UH}8XD>vnTHq|TNzkb85?fy=AFQZAv#%` zUl&7ga|XX9SDd4<xv8_0g}JGvtFfbznTe~ji<66qlc|fjlc}+xiIbgz4M8QbTy}O` Z#U+VFB^5=fX<TN8CWc(9s;>TSTmZ!BEiwQA diff --git a/docs/zookeeperInternals.pdf b/docs/zookeeperInternals.pdf index 28cb5505426c497f1a9fd89da67f191c5d6dadbf..b8c96d790ae966bf7bf38d61ca23400d271a7748 100644 GIT binary patch delta 174 zcmX@~m+8=7rU@;a#s-E)CPu~vW*d9Y@bDVz8W`#tnS>Y_TN#*bPUD@-h$=Lhjo$!O zWV18B!uoh4a{~i2S4THz6LS+cH)msWBO`Nj3j<eUM^`5&H#cWH1sj4&V!7<>xQa^> Xi%KerQq#Ch%*;(Kxl~nM{oS|#)$A-u delta 174 zcmX@~m+8=7rU@;aMuvt)=0?T_78`rd@bDVx8XD>vnTHq|TNzkvPUD@-h$=Lhjo$!O zWV18B!uoha14n0P6Gu}6H$zubOIJ%5R}(WsH$xXQBV%(zV`F1G1sj4&V!7<>xQa^> Xi%KerQq#Ch%*;(Kxl~nM{oS|##>Fee diff --git a/docs/zookeeperJMX.pdf b/docs/zookeeperJMX.pdf index f654b606717eb85021e5fea585a89cf34f22b08c..b7757244984d559eb5f75d7a097ea623d7c8be92 100644 GIT binary patch delta 185 zcmaFV!1$<vaY7xpv4NqHiIK5^nX%c%&Lcbm#<~WEx<)1;M#feKW>&^#n`3z=Fk*;K z{>!I}A-LI!|D-{@v#F7psiljffr+W5nX9q6qp`7>sf(q#qoIL`g_E&`oq`QPC9zy~ cc3j0JiA5z9MX70AhNi}5=3J_(uKsRZ0AlJc3jhEB delta 185 zcmaFV!1$<vaY7xpk)ffHxskDfg^}gP&LcbmM!JTEx<=+9M#feK7FI@<n`3z=Fk*;K z{>!I}A-LI!|D-{@iHn7inX$Q(lcS@#fvc0Dvx%Xzxr>vTi-n_^vw@|Foq`QPC9zy~ cc3j0JiA5z9MX70AhNi}5=3J_(uKsRZ0F})y!2kdN diff --git a/docs/zookeeperObservers.pdf b/docs/zookeeperObservers.pdf index 4b337d1b64b927763eb144e2daa90d0ef4c61f84..48e64166d5e6ec5c759f60bda8bb79ef8d372ff8 100644 GIT binary patch delta 157 zcmX?^ax!H?3%9X>p^=G^v4NSf`NsZJJOakL28OyuCLu<~Rt9EP#^#$dc_%Pph)(9@ z*ToRr?8d)D$<fu=!obqN(9q1((ACV$&Bf5b&B(&p#L?K)!o<kZ)Y(qK2EUTY+D38! DTP!8F delta 157 zcmX?^ax!H?3%8M>p^>?fv4MrL@y7mBJOW0#hK9OE<{?JLRt6SU#>Sg7c_%Pph)(9@ z*ToRr?8d)D$<f@|+11k0($vYo$-vRk+|b#=(Z$Hv#LU&w(aqS%)Y(qK2EUTY+D38! Ddv7Lr diff --git a/docs/zookeeperOver.pdf b/docs/zookeeperOver.pdf index 94c9229c7a334f10375674d5b0307f0306d7b25d..d0416c28b40e9698165e909bbe2325ba13be633c 100644 GIT binary patch delta 217 zcmbQeTWI!fp$S#o#s-E)CPu~vX2#|lTMzIE80#7s>Kd7Z7#Uj`m{}Q{Zw}?1z=$C_ z`756;hG4T1f4dPsW4jSQQ@asA^L8VC7NG_qV+CUq1p|d3E(HaB&s-w~Bg5$_{Va-{ zV6KURx$*XfewIDFPG*iymL?|7ZjPqr&gN#$<`%AI&IZn=hL$F#Ca!MAb_zB|1e8p# Io68~#043Ko4gdfE delta 221 zcmbQeTWI!fp$S#oMuvt)=0?T_7RE*!TMzIE80i`s>Kd7c7#Uj`SXdbwZ4Tv~z=$C_ z`756;hG4T1f4dPsW4jSQQ@asA^L8VC7NG_OBLyQv1p|d3E(HaB&s<{#V-p0=M8Vv6 zdRRY;;`Y{lmhHSw2IfwdhOP##W=0l<hK@$Y24<!v=B6gbW{&0-md>Vj3N}UrluWOi H%OVQ^yl^!0 diff --git a/docs/zookeeperProgrammers.html b/docs/zookeeperProgrammers.html index ddc40781..92c0e846 100644 --- a/docs/zookeeperProgrammers.html +++ b/docs/zookeeperProgrammers.html @@ -443,7 +443,7 @@ document.write("Last Published: " + document.lastModified); <li> <p>The following characters can't be used because they don't - display well, or render in confusing ways: \u0001 - \u0019 and \u007F + display well, or render in confusing ways: \u0001 - \u001F and \u007F - \u009F.</p> </li> @@ -451,8 +451,8 @@ document.write("Last Published: " + document.lastModified); <li> -<p>The following characters are not allowed: \ud800 -uF8FFF, - \uFFF0-uFFFF, \uXFFFE - \uXFFFF (where X is a digit 1 - E), \uF0000 - +<p>The following characters are not allowed: \ud800 - uF8FF, + \uFFF0 - uFFFF, \uXFFFE - \uXFFFF (where X is a digit 1 - E), \uF0000 - \uFFFFF.</p> </li> diff --git a/docs/zookeeperProgrammers.pdf b/docs/zookeeperProgrammers.pdf index edf97cee78d2a7e0fbe98d158ea315d7f158abca..15c9d7deed470f65da3710584b03d25fbf710b69 100644 GIT binary patch delta 5803 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�`xs4KZ@5rKN>2rd3A9P^Td|*U}6vRt=3T zjnQM;(7?dZ02;+e-m)~dG@mZW$s}xxmeLK4EKSVO3MoSa17i#^BTG|L)9H!WjW9<~ z@P-BkW@b=lz`S5+WNBe;Jbfd`2uvwUQ?yKNXkcJzg6>*l0|R5j>5N=V!nWu}7#JEE zp$CwGg{c|3v4#eg#s<>^u^9m>-!N@7L@yl-4Gj&AjHWLH8G&xPv4J5hRl)sjXlR6% z`3($>4UEi<rhfz(f$k9_ON{Ek(9qD-7~N$?mga^g(;c}ni(^AWLkk0Rml+ycpqHhF zhQ^kLM$;#Pj6hGuh9(BE8UW!D6GKcR%nZ#9r$6MzQnDDD8Cs$zZ9@wq6SQ1xXlQ0) zh@sBR483GAG&Hk7&&7s@<_1R4T!~2Th889kM$;R4u%r?rBO~+z+tAR$3_ZIU8d{i} zn@zt6G6KVCmImkrjG>{Wp#??=S{j4O5?(B2iJ_&bC0YhIG_*7~M$d?bpfYlLA;<{y z=rl4i#gaQru@up!7N*k=@-hk6V;W&*if*HkkvV!1WoTq%X^8Gx&>$FkZZk4AFhMuZ z*uWfCLL=hG$k@=>Y<eOemXvE`Y-9qBPk6F3Hn1>97c(+8Hno_(5o830w~S3KF!GeK z8G1cwXk=_|X*r#dA6ublVqk{uV<Qto3-pw0WMXV;Fg=hTOX4>&F+s1c42=y9Fw1%q zQ*-nbW@KW9-uf^!GO;i~4_qS?OCzZ7<KUrXWNKiB5n84g?IS~DP$`DmW->G~h1ZF2 z^Nc}>d%B|lw#;N|Vu5Lu8D>3YYHnsSeIm#R46mA6V$>Z*W`>wvH8V1_nEp@zTS%Lk zn4#xABQsM=jL0%G!^m_-W)=n*5p4z!Rd^s6nHv~Gle-y`pdosPz|hFt$P~jsb7OOZ z=_>`9Y!e&}oh+TqO-v1qT`inkjSL*kEscx~9o@`K%#AD^oh<DXYzQie<+8KmDlSPZ YDyb++P2(~&HZ(Ff;8Im}^>^a}02JIdf&c&j delta 6206 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 Vq@pM_jmyv&WGk1ds;j>n7XZwzdU*f< diff --git a/docs/zookeeperQuotas.pdf b/docs/zookeeperQuotas.pdf index a8a1d6cd4c1df985b649dc8832b28569009f907d..d3533658517e10e602c76f37e23d18c4c01c492a 100644 GIT binary patch delta 183 zcmewt{x5t&2e+|-p^=G^v4NSf`NqlTcm#}f4GeXSOhSx|tqjbpjLkO}@=jpH5S=W@ zuZtnL*^fU^Cf>}<%-GP)+0ez&+{nqq!pOzV%*4^r)yUk*z{t|f!o^O(hM<yIE;~D} a;*!Lol8U0#G%iB}V*_(8RaIAiH!c9?<1Hfq delta 183 zcmewt{x5t&2e*--p^>?fv4Mq=<;Kb9cm#}e4GndT%tMTftqd%zj4U@7@=jpH5S=W@ zuZtnL*^fU^Cf?QA+{n?<$kEuv*v!P((apuoz{t_U%*D~g(8Sch#nDc|hM<yIE;~D} a;*!Lol8U0#G%iB}V*_(8RaIAiH!c7H2rXv- diff --git a/docs/zookeeperStarted.pdf b/docs/zookeeperStarted.pdf index c9d97760d3d6816ba325ec11ad7fa15d1dd5e692..85af36c97e187e92c40e9fdc367418be81c4c460 100644 GIT binary patch delta 160 zcmX?ho$=Up#t9R+jSUQqOpJ^T%#2Mo&c4PYV61CksB2^rVq|P(U}j}(vbm9W0wad# zWJP{m48hHD{9G|kPA<kSX6D9*PG)8%7B0@_rUp(<mPUqV24<#4M#fHd3N|JLluTZg GEdu~4Dkq`< delta 160 zcmX?ho$=Up#t9R+jSLNq%#Dl<ER2me&c4PYV5DnksB2^%Vq|P(U}0r!yt$Eg0wad# zWJP{m48hHD{9G|kjs^zi1_sV%md-|QMn>iq7S0yt2Bzl57A{7Hj*c#N3N|JLluTZg GEdu~40VlKo diff --git a/docs/zookeeperTutorial.pdf b/docs/zookeeperTutorial.pdf index af356f13ef8e67a7a8555ef0fd6834842222bce2..7a69bcb8cb0a907f6e0494ced92cf35b3b0502b0 100644 GIT binary patch delta 160 zcmZ4Sj&a31#tHMdjSUQqOpJ^T%#4jTu6)8HV61CksB2^rVq|P(U}j}(w0SP?1V#+e z$+rBu7=oLt_yf|Nj9d(i4ULRkO<fEf%`9A<Eu0;lOwCO#Tr3=&+>Bi86l@F$D4EPt GE&~8|GAL*O delta 160 zcmZ4Sj&a31#tHMdjSLNq%#Dl<ER0Pzu6)8HV5DnksB2^%Vq|P(U}0r!x_K_|1V#+e z$+rBu7=oLt_yf|N%w0?@oJ`!D9bJq~%`D8EO^l2!4V@e<j0}w(%`MIC6l@F$D4EPt GE&~977APnH diff --git a/src/docs/src/documentation/content/xdocs/zookeeperProgrammers.xml b/src/docs/src/documentation/content/xdocs/zookeeperProgrammers.xml index fe84542e..784ad0c5 100644 --- a/src/docs/src/documentation/content/xdocs/zookeeperProgrammers.xml +++ b/src/docs/src/documentation/content/xdocs/zookeeperProgrammers.xml @@ -133,13 +133,13 @@ <listitem> <para>The following characters can't be used because they don't - display well, or render in confusing ways: \u0001 - \u0019 and \u007F + display well, or render in confusing ways: \u0001 - \u001F and \u007F - \u009F.</para> </listitem> <listitem> - <para>The following characters are not allowed: \ud800 -uF8FFF, - \uFFF0-uFFFF, \uXFFFE - \uXFFFF (where X is a digit 1 - E), \uF0000 - + <para>The following characters are not allowed: \ud800 - uF8FF, + \uFFF0 - uFFFF, \uXFFFE - \uXFFFF (where X is a digit 1 - E), \uF0000 - \uFFFFF.</para> </listitem> diff --git a/src/java/main/org/apache/zookeeper/common/PathUtils.java b/src/java/main/org/apache/zookeeper/common/PathUtils.java index 12a68142..e479787e 100644 --- a/src/java/main/org/apache/zookeeper/common/PathUtils.java +++ b/src/java/main/org/apache/zookeeper/common/PathUtils.java @@ -86,10 +86,10 @@ public class PathUtils { reason = "relative paths not allowed @" + i; break; } - } else if (c > '\u0000' && c < '\u001f' - || c > '\u007f' && c < '\u009F' - || c > '\ud800' && c < '\uf8ff' - || c > '\ufff0' && c < '\uffff') { + } else if (c > '\u0000' && c <= '\u001f' + || c >= '\u007f' && c <= '\u009F' + || c >= '\ud800' && c <= '\uf8ff' + || c >= '\ufff0' && c <= '\uffff') { reason = "invalid charater @" + i; break; } diff --git a/src/java/test/org/apache/zookeeper/common/PathUtilsTest.java b/src/java/test/org/apache/zookeeper/common/PathUtilsTest.java new file mode 100644 index 00000000..9b224ee2 --- /dev/null +++ b/src/java/test/org/apache/zookeeper/common/PathUtilsTest.java @@ -0,0 +1,128 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.zookeeper.common; + +import org.junit.Test; + +public class PathUtilsTest { + + @Test + public void testValidatePath_ValidPath() { + PathUtils.validatePath("/this is / a valid/path"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_Null() { + PathUtils.validatePath(null); + } + + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_EmptyString() { + PathUtils.validatePath(""); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_NotAbsolutePath() { + PathUtils.validatePath("not/valid"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_EndsWithSlash() { + PathUtils.validatePath("/ends/with/slash/"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_ContainsNullCharacter() { + PathUtils.validatePath("/test\u0000"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_DoubleSlash() { + PathUtils.validatePath("/double//slash"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_SinglePeriod() { + PathUtils.validatePath("/single/./period"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_DoublePeriod() { + PathUtils.validatePath("/double/../period"); + } + + @Test + public void testValidatePath_NameContainingPeriod() { + // A period that isn't on its own is ok + PathUtils.validatePath("/name/with.period."); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_0x01() { + PathUtils.validatePath("/test\u0001"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_0x1F() { + PathUtils.validatePath("/test\u001F"); + } + + @Test // The first allowable character + public void testValidatePath_0x20() { + PathUtils.validatePath("/test\u0020"); + } + + @Test + public void testValidatePath_0x7e() { + // The last valid ASCII character + PathUtils.validatePath("/test\u007e"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_0x7f() { + PathUtils.validatePath("/test\u007f"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_0x9f() { + PathUtils.validatePath("/test\u009f"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_ud800() { + PathUtils.validatePath("/test\ud800"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_uf8ff() { + PathUtils.validatePath("/test\uf8ff"); + } + + @Test + public void testValidatePath_HighestAllowableChar() { + PathUtils.validatePath("/test\uffef"); + } + + @Test(expected=IllegalArgumentException.class) + public void testValidatePath_SupplementaryChar() { + PathUtils.validatePath("/test\ufff0"); + } + +} -- GitLab