public static function full_relative_path($base, $url)
 {
     $dict = parse_url($url);
     if (isset($dict['path'])) {
         $result = AmberNetworkUtils::clean_up_path(join('/', array($base, $dict['path'])));
     } else {
         $result = $base;
     }
     $result .= isset($dict['query']) ? '?' . $dict['query'] : '';
     return $result;
 }
 public function testCleanUpPathString()
 {
     $this->assertEquals("common.css", AmberNetworkUtils::clean_up_path("../common.css"));
     $this->assertEquals("_v_1.0.32/personal/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/common.css"));
     $this->assertEquals("_v_1.0.32/personal/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../common.css"));
     $this->assertEquals("_v_1.0.32/common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../../common.css"));
     $this->assertEquals("common.css", AmberNetworkUtils::clean_up_path("_v_1.0.32/personal/photo/../../../../common.css"));
 }