tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

PermissionManagerTest.cpp (1813B)


      1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
      3 /* This Source Code Form is subject to the terms of the Mozilla Public
      4 * License, v. 2.0. If a copy of the MPL was not distributed with this
      5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      6 
      7 #include "nsNetUtil.h"
      8 #include "mozilla/BasePrincipal.h"
      9 #include "mozilla/OriginAttributes.h"
     10 #include "mozilla/PermissionManager.h"
     11 #include "mozilla/RefPtr.h"
     12 #include "gtest/gtest.h"
     13 #include "gtest/MozGTestBench.h"
     14 
     15 using namespace mozilla;
     16 
     17 class PermissionManagerTester : public ::testing::Test {
     18 protected:
     19  PermissionManagerTester()
     20      : mNonExistentType("permissionTypeThatIsGuaranteedToNeverExist"_ns) {}
     21  void SetUp() override {
     22    mPermissionManager = PermissionManager::GetInstance();
     23    nsCOMPtr<nsIURI> uri;
     24    nsresult rv =
     25        NS_NewURI(getter_AddRefs(uri),
     26                  "https://test.origin.with.subdomains.example.com"_ns);
     27    MOZ_RELEASE_ASSERT(NS_SUCCEEDED(rv));
     28    mPrincipal =
     29        mozilla::BasePrincipal::CreateContentPrincipal(uri, OriginAttributes());
     30  }
     31 
     32  void TearDown() override {
     33    mPermissionManager = nullptr;
     34    mPrincipal = nullptr;
     35  }
     36 
     37  static const unsigned kNumIterations = 100000;
     38 
     39  nsLiteralCString mNonExistentType;
     40  RefPtr<PermissionManager> mPermissionManager;
     41  nsCOMPtr<nsIPrincipal> mPrincipal;
     42 };
     43 
     44 MOZ_GTEST_BENCH_F(PermissionManagerTester,
     45                  TestNonExistentPermissionFromPrincipal, [this] {
     46                    for (unsigned i = 0; i < kNumIterations; ++i) {
     47                      uint32_t result = 0;
     48                      (void)mPermissionManager->TestPermissionFromPrincipal(
     49                          mPrincipal, mNonExistentType, &result);
     50                    }
     51                  });