You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ja...@apache.org on 2009/04/13 18:26:43 UTC

svn commit: r764517 - in /incubator/jspwiki/trunk: src/java/org/apache/wiki/JCRWikiPage.java src/java/org/apache/wiki/content/ContentManager.java tests/java/org/apache/wiki/WikiEngineTest.java

Author: jalkanen
Date: Mon Apr 13 16:26:42 2009
New Revision: 764517

URL: http://svn.apache.org/viewvc?rev=764517&view=rev
Log:
When a page is saved, now checks for a valid content type.

Modified:
    incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java
    incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
    incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java?rev=764517&r1=764516&r2=764517&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/JCRWikiPage.java Mon Apr 13 16:26:42 2009
@@ -61,7 +61,7 @@
 
     private static final String ATTR_CONTENT = "wiki:content";
 
-    private static final String CONTENTTYPE  = "wiki:contentType";
+    public  static final String CONTENTTYPE  = "wiki:contentType";
     
 
     public static final String REFERSTO = "wiki:refersTo";
@@ -600,7 +600,9 @@
 
     public boolean isAttachment() throws ProviderException
     {
-        if( getContentType().equals( ContentManager.JSPWIKI_CONTENT_TYPE ) ) return false;
+        String contentType = getContentType();
+        
+        if( ContentManager.JSPWIKI_CONTENT_TYPE.equals( contentType ) ) return false;
         
         return true;
     }

Modified: incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java?rev=764517&r1=764516&r2=764517&view=diff
==============================================================================
--- incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java (original)
+++ incubator/jspwiki/trunk/src/java/org/apache/wiki/content/ContentManager.java Mon Apr 13 16:26:42 2009
@@ -1158,6 +1158,8 @@
      */
     public JCRWikiPage addPage( WikiPath path, String contentType ) throws PageAlreadyExistsException, ProviderException
     {
+        checkValidContentType( contentType );
+        
         try
         {
             Session session = m_sessionManager.getSession();
@@ -1166,7 +1168,8 @@
             
             //nd.addMixin( "mix:versionable" );
             nd.addMixin( "mix:referenceable" );
-
+            nd.setProperty( JCRWikiPage.CONTENTTYPE, contentType );
+            
             JCRWikiPage page = new JCRWikiPage(m_engine, nd);
             
             return page;
@@ -1177,6 +1180,14 @@
         }
     }
 
+    /** Throws an exception if the content type is not a fully valid content type. */
+    private void checkValidContentType( String type ) throws ProviderException
+    {
+        if( type == null ) throw new ProviderException("null content type");
+        
+        if( type.indexOf('/') == -1 ) throw new ProviderException("Not RFC compliant type");
+    }
+    
     /**
      *  Get content from the repository.
      *  

Modified: incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java
URL: http://svn.apache.org/viewvc/incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java?rev=764517&r1=764516&r2=764517&view=diff
==============================================================================
--- incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java (original)
+++ incubator/jspwiki/trunk/tests/java/org/apache/wiki/WikiEngineTest.java Mon Apr 13 16:26:42 2009
@@ -41,6 +41,8 @@
 
     TestEngine m_engine;
 
+    private static final WikiPath PATH_FOOBAR  = WikiPath.valueOf( "Foobar" );
+    private static final WikiPath PATH_FOOBARS = WikiPath.valueOf( "Foobars" );
 
     public WikiEngineTest( String s )
     {
@@ -120,10 +122,10 @@
         m_engine.saveText( "Foobar", "1" );
         m_engine.saveText( "Foobars", "2" );
 
-        assertEquals( "plural mistake", "Foobars",
+        assertEquals( "plural mistake", PATH_FOOBARS,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobars") ) );
 
-        assertEquals( "singular mistake", "Foobar",
+        assertEquals( "singular mistake", PATH_FOOBAR,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobar" )) );
     }
 
@@ -132,9 +134,9 @@
     {
         m_engine.saveText( "Foobar", "1" );
 
-        assertEquals( "plural mistake", "Foobar",
+        assertEquals( "plural mistake", PATH_FOOBAR,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobars") ) );
-        assertEquals( "singular mistake", "Foobar",
+        assertEquals( "singular mistake", PATH_FOOBAR,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobar") ) );
     }
 
@@ -143,9 +145,9 @@
     {
         m_engine.saveText( "Foobars", "1" );
 
-        assertEquals( "plural mistake", "Foobars",
+        assertEquals( "plural mistake", PATH_FOOBARS,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobars") ) );
-        assertEquals( "singular mistake", "Foobars",
+        assertEquals( "singular mistake", PATH_FOOBARS,
                       m_engine.getFinalPageName( WikiPath.valueOf("Foobar") ) );
     }
     
@@ -245,7 +247,7 @@
         m_engine.deletePage( "Test" );
         Object[] result = m_engine.scanWikiLinks( m_engine.createPage( WikiPath.valueOf( "Test" ) ), src ).toArray();
         
-        assertEquals( "item 0", "Foobar", result[0] );
+        assertEquals( "item 0", PATH_FOOBAR, result[0] );
         assertEquals( "item 1", "This is a link", result[1] );
     }