<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>ACLSmokeTest xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../../../apidocs/org/apache/chemistry/opencmis/tck/tests/control/ACLSmokeTest.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   <em class="jxr_comment"> * or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_comment"> * distributed with this work for additional information</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_comment"> * regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_comment"> * to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_comment"> * "License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_comment"> * with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_comment"> * <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  <em class="jxr_comment"> *</em>
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  <em class="jxr_comment"> * software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_comment"> * KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_comment"> * specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_comment"> * under the License.</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_comment"> */</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <strong class="jxr_keyword">package</strong> org.apache.chemistry.opencmis.tck.tests.control;
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus.FAILURE;
<a class="jxr_linenumber" name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus.INFO;
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> <strong class="jxr_keyword">static</strong> org.apache.chemistry.opencmis.tck.CmisTestResultStatus.SKIPPED;
<a class="jxr_linenumber" name="24" href="#24">24</a>  
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.util.ArrayList;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.util.Collections;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.util.List;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.util.Map;
<a class="jxr_linenumber" name="29" href="#29">29</a>  
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Document;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Folder;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.client.api.Session;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Ace;
<a class="jxr_linenumber" name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.Acl;
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
<a class="jxr_linenumber" name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.AclPropagation;
<a class="jxr_linenumber" name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.commons.enums.CapabilityAcl;
<a class="jxr_linenumber" name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.CmisTestResult;
<a class="jxr_linenumber" name="39" href="#39">39</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
<a class="jxr_linenumber" name="40" href="#40">40</a>  <strong class="jxr_keyword">import</strong> org.apache.chemistry.opencmis.tck.impl.TestParameters;
<a class="jxr_linenumber" name="41" href="#41">41</a>  
<a class="jxr_linenumber" name="42" href="#42">42</a>  <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> * ACL smoke test.</em>
<a class="jxr_linenumber" name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="45" href="#45">45</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/tck/tests/control/ACLSmokeTest.html">ACLSmokeTest</a> <strong class="jxr_keyword">extends</strong> <a href="../../../../../../../org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.html">AbstractSessionTest</a> {
<a class="jxr_linenumber" name="46" href="#46">46</a>  
<a class="jxr_linenumber" name="47" href="#47">47</a>      @Override
<a class="jxr_linenumber" name="48" href="#48">48</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> init(Map&lt;String, String&gt; parameters) {
<a class="jxr_linenumber" name="49" href="#49">49</a>          <strong class="jxr_keyword">super</strong>.init(parameters);
<a class="jxr_linenumber" name="50" href="#50">50</a>          setName(<span class="jxr_string">"ACL Test"</span>);
<a class="jxr_linenumber" name="51" href="#51">51</a>          setDescription(<span class="jxr_string">"Creates a document and checks its ACL."</span>);
<a class="jxr_linenumber" name="52" href="#52">52</a>      }
<a class="jxr_linenumber" name="53" href="#53">53</a>  
<a class="jxr_linenumber" name="54" href="#54">54</a>      @Override
<a class="jxr_linenumber" name="55" href="#55">55</a>      <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> run(Session session) {
<a class="jxr_linenumber" name="56" href="#56">56</a>          <a href="../../../../../../../org/apache/chemistry/opencmis/tck/CmisTestResult.html">CmisTestResult</a> f;
<a class="jxr_linenumber" name="57" href="#57">57</a>  
<a class="jxr_linenumber" name="58" href="#58">58</a>          <strong class="jxr_keyword">if</strong> (supportsACLs(session)) {
<a class="jxr_linenumber" name="59" href="#59">59</a>              <strong class="jxr_keyword">try</strong> {
<a class="jxr_linenumber" name="60" href="#60">60</a>                  <em class="jxr_comment">// create folder and document</em>
<a class="jxr_linenumber" name="61" href="#61">61</a>                  Folder testFolder = createTestFolder(session);
<a class="jxr_linenumber" name="62" href="#62">62</a>                  Document doc = createDocument(session, testFolder, <span class="jxr_string">"acltest.txt"</span>, <span class="jxr_string">"ACL test"</span>);
<a class="jxr_linenumber" name="63" href="#63">63</a>  
<a class="jxr_linenumber" name="64" href="#64">64</a>                  <em class="jxr_comment">// check if there is an ACL</em>
<a class="jxr_linenumber" name="65" href="#65">65</a>                  Acl acl = doc.getAcl();
<a class="jxr_linenumber" name="66" href="#66">66</a>  
<a class="jxr_linenumber" name="67" href="#67">67</a>                  f = createResult(FAILURE, <span class="jxr_string">"ACLs are supported but newly created document has no ACL!"</span>);
<a class="jxr_linenumber" name="68" href="#68">68</a>                  addResult(assertNotNull(acl, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="69" href="#69">69</a>  
<a class="jxr_linenumber" name="70" href="#70">70</a>                  <em class="jxr_comment">// check basic permissions</em>
<a class="jxr_linenumber" name="71" href="#71">71</a>                  Acl basicAcl = session.getAcl(doc, <strong class="jxr_keyword">true</strong>);
<a class="jxr_linenumber" name="72" href="#72">72</a>  
<a class="jxr_linenumber" name="73" href="#73">73</a>                  f = createResult(FAILURE,
<a class="jxr_linenumber" name="74" href="#74">74</a>                          <span class="jxr_string">"ACLs are supported but repository does not return a basic ACL for the newly created document!"</span>);
<a class="jxr_linenumber" name="75" href="#75">75</a>                  addResult(assertNotNull(basicAcl, <strong class="jxr_keyword">null</strong>, f));
<a class="jxr_linenumber" name="76" href="#76">76</a>  
<a class="jxr_linenumber" name="77" href="#77">77</a>                  <strong class="jxr_keyword">if</strong> (basicAcl != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="78" href="#78">78</a>                      addResult(checkACL(session, basicAcl, false, <span class="jxr_string">"Basic ACL"</span>));
<a class="jxr_linenumber" name="79" href="#79">79</a>  
<a class="jxr_linenumber" name="80" href="#80">80</a>                      <strong class="jxr_keyword">if</strong> (basicAcl.getAces() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="81" href="#81">81</a>                          <strong class="jxr_keyword">for</strong> (Ace ace : basicAcl.getAces()) {
<a class="jxr_linenumber" name="82" href="#82">82</a>                              <strong class="jxr_keyword">if</strong> (ace.getPermissions() != <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="83" href="#83">83</a>                                  <strong class="jxr_keyword">for</strong> (String permission : ace.getPermissions()) {
<a class="jxr_linenumber" name="84" href="#84">84</a>                                      <strong class="jxr_keyword">if</strong> (!<span class="jxr_string">"cmis:read"</span>.equals(permission) &amp;&amp; !<span class="jxr_string">"cmis:write"</span>.equals(permission)
<a class="jxr_linenumber" name="85" href="#85">85</a>                                              &amp;&amp; !<span class="jxr_string">"cmis:all"</span>.equals(permission)) {
<a class="jxr_linenumber" name="86" href="#86">86</a>                                          addResult(createResult(FAILURE, <span class="jxr_string">"ACE contains a non-basic permission: "</span>
<a class="jxr_linenumber" name="87" href="#87">87</a>                                                  + permission));
<a class="jxr_linenumber" name="88" href="#88">88</a>                                      }
<a class="jxr_linenumber" name="89" href="#89">89</a>                                  }
<a class="jxr_linenumber" name="90" href="#90">90</a>                              }
<a class="jxr_linenumber" name="91" href="#91">91</a>                          }
<a class="jxr_linenumber" name="92" href="#92">92</a>                      }
<a class="jxr_linenumber" name="93" href="#93">93</a>                  }
<a class="jxr_linenumber" name="94" href="#94">94</a>  
<a class="jxr_linenumber" name="95" href="#95">95</a>                  <strong class="jxr_keyword">if</strong> (getAclCapability(session) == CapabilityAcl.MANAGE
<a class="jxr_linenumber" name="96" href="#96">96</a>                          &amp;&amp; !Boolean.FALSE.equals(doc.getType().isControllableAcl())) {
<a class="jxr_linenumber" name="97" href="#97">97</a>                      String principal = getParameters().get(TestParameters.DEFAULT_ACL_PRINCIPAL);
<a class="jxr_linenumber" name="98" href="#98">98</a>                      <strong class="jxr_keyword">if</strong> (principal == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="99" href="#99">99</a>                          principal = TestParameters.DEFAULT_ACL_PRINCIPAL_VALUE;
<a class="jxr_linenumber" name="100" href="#100">100</a>                     }
<a class="jxr_linenumber" name="101" href="#101">101</a> 
<a class="jxr_linenumber" name="102" href="#102">102</a>                     <em class="jxr_comment">// apply permission "cmis:write"</em>
<a class="jxr_linenumber" name="103" href="#103">103</a>                     List&lt;Ace&gt; aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a class="jxr_linenumber" name="104" href="#104">104</a>                     aces.add(session.getObjectFactory().createAce(principal, Collections.singletonList(<span class="jxr_string">"cmis:write"</span>)));
<a class="jxr_linenumber" name="105" href="#105">105</a> 
<a class="jxr_linenumber" name="106" href="#106">106</a>                     session.applyAcl(doc, aces, <strong class="jxr_keyword">null</strong>, <strong class="jxr_keyword">null</strong>);
<a class="jxr_linenumber" name="107" href="#107">107</a> 
<a class="jxr_linenumber" name="108" href="#108">108</a>                     <strong class="jxr_keyword">if</strong> (session.getRepositoryInfo().getAclCapabilities().getAclPropagation() != AclPropagation.REPOSITORYDETERMINED) {
<a class="jxr_linenumber" name="109" href="#109">109</a>                         <em class="jxr_comment">// set permission "cmis:all"</em>
<a class="jxr_linenumber" name="110" href="#110">110</a>                         aces = <strong class="jxr_keyword">new</strong> ArrayList&lt;Ace&gt;();
<a class="jxr_linenumber" name="111" href="#111">111</a>                         aces.add(session.getObjectFactory().createAce(principal, Collections.singletonList(<span class="jxr_string">"cmis:all"</span>)));
<a class="jxr_linenumber" name="112" href="#112">112</a> 
<a class="jxr_linenumber" name="113" href="#113">113</a>                         session.setAcl(doc, aces);
<a class="jxr_linenumber" name="114" href="#114">114</a>                     }
<a class="jxr_linenumber" name="115" href="#115">115</a>                 } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="116" href="#116">116</a>                     addResult(createResult(INFO, <span class="jxr_string">"The repository or the type '"</span> + doc.getType().getId()
<a class="jxr_linenumber" name="117" href="#117">117</a>                             + <span class="jxr_string">"' don't support managing ACLs."</span>));
<a class="jxr_linenumber" name="118" href="#118">118</a>                 }
<a class="jxr_linenumber" name="119" href="#119">119</a> 
<a class="jxr_linenumber" name="120" href="#120">120</a>                 deleteObject(doc);
<a class="jxr_linenumber" name="121" href="#121">121</a>             } <strong class="jxr_keyword">finally</strong> {
<a class="jxr_linenumber" name="122" href="#122">122</a>                 deleteTestFolder();
<a class="jxr_linenumber" name="123" href="#123">123</a>             }
<a class="jxr_linenumber" name="124" href="#124">124</a>         } <strong class="jxr_keyword">else</strong> {
<a class="jxr_linenumber" name="125" href="#125">125</a>             addResult(createResult(SKIPPED, <span class="jxr_string">"ACLs are not supported. Test Skipped!"</span>));
<a class="jxr_linenumber" name="126" href="#126">126</a>         }
<a class="jxr_linenumber" name="127" href="#127">127</a>     }
<a class="jxr_linenumber" name="128" href="#128">128</a> 
<a class="jxr_linenumber" name="129" href="#129">129</a>     <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">boolean</strong> supportsACLs(Session session) {
<a class="jxr_linenumber" name="130" href="#130">130</a>         CapabilityAcl aclCap = getAclCapability(session);
<a class="jxr_linenumber" name="131" href="#131">131</a>         <strong class="jxr_keyword">return</strong> (aclCap != <strong class="jxr_keyword">null</strong>) &amp;&amp; (aclCap != CapabilityAcl.NONE);
<a class="jxr_linenumber" name="132" href="#132">132</a>     }
<a class="jxr_linenumber" name="133" href="#133">133</a> 
<a class="jxr_linenumber" name="134" href="#134">134</a>     <strong class="jxr_keyword">protected</strong> CapabilityAcl getAclCapability(Session session) {
<a class="jxr_linenumber" name="135" href="#135">135</a>         RepositoryInfo repository = session.getRepositoryInfo();
<a class="jxr_linenumber" name="136" href="#136">136</a> 
<a class="jxr_linenumber" name="137" href="#137">137</a>         <strong class="jxr_keyword">if</strong> (repository.getCapabilities().getAclCapability() == <strong class="jxr_keyword">null</strong>) {
<a class="jxr_linenumber" name="138" href="#138">138</a>             <strong class="jxr_keyword">return</strong> <strong class="jxr_keyword">null</strong>;
<a class="jxr_linenumber" name="139" href="#139">139</a>         }
<a class="jxr_linenumber" name="140" href="#140">140</a> 
<a class="jxr_linenumber" name="141" href="#141">141</a>         <strong class="jxr_keyword">return</strong> repository.getCapabilities().getAclCapability();
<a class="jxr_linenumber" name="142" href="#142">142</a>     }
<a class="jxr_linenumber" name="143" href="#143">143</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

