blob: edba01a4f3e924ff4d404841b66d8e7336b6eaa5 [file] [log] [blame]
/*
* Copyright 2012 Google Inc.
*
* Licensed 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.
*/
// Author: gagansingh@google.com (Gagan Singh)
#include "net/instaweb/rewriter/public/blink_util.h"
#include "testing/base/public/gunit.h"
#include "pagespeed/kernel/base/string.h"
namespace net_instaweb {
namespace {
class BlinkUtilTest : public ::testing::Test {
};
TEST_F(BlinkUtilTest, ClearArrayIfAllEmpty) {
Json::Value val(Json::arrayValue);
Json::Value val_obj(Json::objectValue);
val_obj["contiguous"] = "blah";
val.append(val_obj);
val.append(val_obj);
val.append(val_obj);
BlinkUtil::ClearArrayIfAllEmpty(&val);
EXPECT_EQ(0, val.size());
val.append(val_obj);
val_obj["instance_html"] = "blah";
val.append(val_obj);
BlinkUtil::ClearArrayIfAllEmpty(&val);
EXPECT_EQ(2, val.size());
}
TEST_F(BlinkUtilTest, IsJsonEmpty) {
Json::Value val_obj(Json::objectValue);
EXPECT_TRUE(BlinkUtil::IsJsonEmpty(val_obj));
val_obj["contiguous"] = "blah";
EXPECT_TRUE(BlinkUtil::IsJsonEmpty(val_obj));
val_obj["instance_html"] = "blah";
EXPECT_FALSE(BlinkUtil::IsJsonEmpty(val_obj));
}
TEST_F(BlinkUtilTest, EscapeString) {
GoogleString str1 = "<stuff\xe2\x80\xa8>\n\\n <script>var i = 0;</script>";
BlinkUtil::EscapeString(&str1);
EXPECT_EQ("<stuff\\u2028>\n\\n <script>var i = 0;<\\/script>",
str1);
GoogleString str2 = "<|

|\\n"; // Has couple of U+2028's betwen the |
BlinkUtil::EscapeString(&str2);
EXPECT_EQ("<|\\u2028\\u2028|\\n", str2);
}
} // namespace
} // namespace net_instaweb