/*
* 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.tomcat.buildutil.translate;

import java.io.File;
import java.util.Properties;

import org.junit.Assert;
import org.junit.Test;

public class TestFixedStrings {

    @Test
    public void testManagerApps() {
        doTestStartsWith("org.apache.catalina.manager", "OK -");
        doTestStartsWith("org.apache.catalina.manager.host", "OK -");
    }


    private void doTestStartsWith(String packageName, String text) {
        File dir = new File("java/" + packageName.replace('.',  '/'));

        // English
        File fileEn = new File(dir, Constants.L10N_PREFIX + Constants.L10N_SUFFIX);
        Properties propsEn = Utils.load(fileEn);

        for (File file : dir.listFiles()) {
            String fileName = file.getName();
            if (fileName.startsWith(Constants.L10N_PREFIX)) {
                if (Utils.getLanguage(fileName) != "en") {
                    doTestStartsFile(file, propsEn, text);
                }
            }
        }
    }


    private void doTestStartsFile(File fileTranslated, Properties propsEn, String text) {
        Properties propsTranslated = Utils.load(fileTranslated);

        for (Object key : propsEn.keySet()) {
            String value = (String) propsEn.get(key);
            if (value != null && value.startsWith(text)) {
                String valueTranslated = (String) propsTranslated.get(key);
                if (valueTranslated != null && !valueTranslated.startsWith(text)) {
                    Assert.fail(fileTranslated.getPath() + " : " + key);
                }
            }
        }
    }
}

@@ -1456,24 +1456,22 @@
     
-for (
 File
+%5B%5D
  file
- :
+s =
  dir
@@ -1482,20 +1482,89 @@
 tFiles()
-) %7B%0A
+;%0A        if (files != null) %7B%0A            for (File file : files) %7B%0A    
         
@@ -1605,32 +1605,36 @@
 ();%0A            
+ 
+   
 if (fileName.sta
@@ -1683,20 +1683,25 @@
         
+    
 if (
+!
 Utils.ge
@@ -1723,20 +1723,29 @@
 ame)
- != 
+.equals(
 %22en%22)
+)
  %7B%0A
+    
     
@@ -1799,16 +1799,38 @@
  text);%0A
+                    %7D%0A
         

Fix a couple of Spotbugs warnings