public function test_url_name_from_name() { $cases = array("Normal name with space" => "normal-name-with-space", "Non-ascii chars like Bäver" => "non-ascii-chars-like-bäver", "Non-ascii uppercase SKOKRÄM" => "non-ascii-uppercase-skokräm", "With comma, like this" => "with-comma-like-this", " white space " => "white-space", "UPPERCASE" => "uppercase", "Tom&Jerry" => "tom-jerry", "Version number 4.1" => "version-number-4-1", "Question?" => "question", "\$\$Ev1l <0xh4c<<>> so€`´\$how!!" => "ev1l-0xh4c-so-how"); $failed = FALSE; foreach ($cases as $test => $expected) { $actual = Project::url_name_from_name($test); if ($actual != $expected) { echo "FAIL: '{$test}' => '{$actual}' EXPECTED: '{$expected}'\n"; $failed = TRUE; } else { echo "PASS: '******'\n"; } } $this->assertTrue(!$failed); }
/** * Set name. */ public function set_name($unsafe_name) { // Convert to url name from unsafe name, to get an as good url name as possible $this->url_name = Project::url_name_from_name($unsafe_name); $this->name = Utils::make_safe_for_display($unsafe_name, TASKTASTE_PROJECT_NAME_MAX_LENGTH); }
/** * Get info about a project from the URL name. */ public static function get_project_from_url($owner_user_id, $unsafe_url_name) { $url_name = Project::url_name_from_name($unsafe_url_name); $query = new SqlQuery("SELECT " . PROJECT_FIELDS . " FROM Projects WHERE project_owneruserid='%s' AND project_urlname='%s' LIMIT 1", $owner_user_id, $url_name); return Sql::get_project_from_row($query->get_next_row()); }