diff --git a/module/dev/model.php b/module/dev/model.php
index b2f34b1d5c..d762e49751 100644
--- a/module/dev/model.php
+++ b/module/dev/model.php
@@ -305,7 +305,7 @@ class devModel extends model
*/
public function getNavLang($type, $module, $method, $language = 'zh-cn', $defaultLang = null)
{
- if(empty($defaultLang)) $defaultLang = $this->loadDefaultLang();
+ if(empty($defaultLang)) $defaultLang = $this->loadDefaultLang($language);
$menus = new stdclass();
if($type == 'second')
@@ -339,7 +339,7 @@ class devModel extends model
}
else
{
- $menus = $type == 'third' ? $defaultLang->$module->menu->{$method}['subMenu'] : $defaultLang->mainNav;
+ $menus = ($type == 'third' and isset($defaultLang->$module->menu->{$method}['subMenu'])) ? $defaultLang->$module->menu->{$method}['subMenu'] : $defaultLang->mainNav;
}
return $menus;
@@ -505,7 +505,7 @@ class devModel extends model
public function loadDefaultLang($language = 'zh-cn', $module = 'common')
{
$clientLang = $this->app->clientLang;
- if($language != $clientLang) $this->app->clientLang = $language;
+ if($language and $language != $clientLang) $this->app->clientLang = $language;
$langFilesToLoad = $this->app->getMainAndExtFiles($module);
if($language != $clientLang) $this->app->clientLang = $clientLang;
diff --git a/test/class/dev.class.php b/test/class/dev.class.php
index 2795c672bd..75beb956bf 100644
--- a/test/class/dev.class.php
+++ b/test/class/dev.class.php
@@ -57,4 +57,20 @@ class devTest
$result = $this->objectModel->getModules();
return $result;
}
+
+ /**
+ * Get nav lang.
+ *
+ * @param string $type
+ * @param string $module
+ * @param string $method
+ * @param string $language
+ * @param object $defaultLang
+ * @access public
+ * @return object
+ */
+ public function getNavLangTest($type, $module, $method, $language = 'zh-cn', $defaultLang = null)
+ {
+ return $this->objectModel->getNavLang($type, $module, $method, $language, $defaultLang);
+ }
}
diff --git a/test/model/dev/getmoduleextpath.php b/test/model/dev/getmoduleextpath.php
new file mode 100644
index 0000000000..40b8c7031d
--- /dev/null
+++ b/test/model/dev/getmoduleextpath.php
@@ -0,0 +1,19 @@
+#!/usr/bin/env php
+> xuan
+
+*/
+
+global $tester;
+$tester->loadModel('dev');
+$extPath = $tester->dev->getModuleExtPath();
+
+r(key($extPath)) && p() && e('xuan'); // 获取扩展的模块路径
diff --git a/test/model/dev/getnavlang.php b/test/model/dev/getnavlang.php
new file mode 100644
index 0000000000..e713e80c71
--- /dev/null
+++ b/test/model/dev/getnavlang.php
@@ -0,0 +1,43 @@
+#!/usr/bin/env php
+> 地盘|my|index|
+检查获取一级导航 >> 项目集|program|browse|
+检查获取地盘二级导航 >> 仪表盘|my|index
+检查获取敏捷项目二级英文导航 >> Dashboard|project|index|project=%s
+检查获取瀑布项目二级中文导航 >> 仪表盘|project|index|project=%s
+检查获取测试二级英文导航 >> Dashboard|qa|index
+检查获取三级导航 >> 地盘|my|index|
+检查获取地盘待处理三级导航 >> 任务|my|work|mode=task
+检查获取项目设置三级导航 >> 概况|project|view|project=%s
+检查获取项目测试英文三级导航 >> Bug|project|bug|projectID=%s
+检查传入不存在的type >> 地盘|my|index|
+
+*/
+
+
+$typeList = array('', 'first', 'second', 'third', 'tag');
+$moduleList = array('', 'my', 'scrum', 'waterfall', 'qa');
+$methodList = array('', 'work', 'settings', 'qa', 'bug');
+$languageList = array('', 'zh-cn', 'en');
+
+$devTester = new devTest();
+r($devTester->getNavLangTest($typeList[0], $moduleList[0], $methodList[0], $languageList[0])) && p('my') && e(" 地盘|my|index|"); // 检查传入空值时的情况
+r($devTester->getNavLangTest($typeList[1], $moduleList[0], $methodList[0], $languageList[1])) && p('program') && e(" 项目集|program|browse|"); // 检查获取一级导航
+r($devTester->getNavLangTest($typeList[2], $moduleList[1], $methodList[0], $languageList[1])) && p('menu_index:link') && e("仪表盘|my|index"); // 检查获取地盘二级导航
+r($devTester->getNavLangTest($typeList[2], $moduleList[2], $methodList[0], $languageList[2])) && p('menu_index:link') && e("Dashboard|project|index|project=%s"); // 检查获取敏捷项目二级英文导航
+r($devTester->getNavLangTest($typeList[2], $moduleList[3], $methodList[0], $languageList[1])) && p('menu_index:link') && e("仪表盘|project|index|project=%s"); // 检查获取瀑布项目二级中文导航
+r($devTester->getNavLangTest($typeList[2], $moduleList[4], $methodList[0], $languageList[2])) && p('menu_index:link') && e("Dashboard|qa|index"); // 检查获取测试二级英文导航
+r($devTester->getNavLangTest($typeList[3], $moduleList[0], $methodList[0], $languageList[0])) && p('my') && e(" 地盘|my|index|"); // 检查获取三级导航
+r($devTester->getNavLangTest($typeList[3], $moduleList[1], $methodList[1], $languageList[0])) && p('task:link') && e("任务|my|work|mode=task"); // 检查获取地盘待处理三级导航
+r($devTester->getNavLangTest($typeList[3], $moduleList[2], $methodList[2], $languageList[0])) && p('view:link') && e("概况|project|view|project=%s"); // 检查获取项目设置三级导航
+r($devTester->getNavLangTest($typeList[3], $moduleList[3], $methodList[3], $languageList[2])) && p('bug:link') && e("Bug|project|bug|projectID=%s"); // 检查获取项目测试英文三级导航
+r($devTester->getNavLangTest($typeList[4], $moduleList[0], $methodList[0], $languageList[0])) && p('my') && e(" 地盘|my|index|"); // 检查传入不存在的type