chromium/chrome/PRESUBMIT_test.py

#!/usr/bin/env python3
# Copyright 2017 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import os
import sys
import unittest

import PRESUBMIT

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from PRESUBMIT_test_mocks import MockFile, MockInputApi

class DisallowedBuildFlagsTest(unittest.TestCase):
  def testChromeDoesNotUseISAPPLE(self):
    lines = ['#if BUILDFLAG(IS_APPLE)',
             '#error IS_APPLE not allowed',
             '#endif']
    errors = PRESUBMIT._CheckNoIsAppleBuildFlagsInChromeFile(
        MockInputApi(), MockFile('chrome/path/foo_platform.cc', lines))
    self.assertEqual(1, len(errors))
    self.assertEqual('    chrome/path/foo_platform.cc:1', errors[0])

  def testChromeDoesNotUseISIOS(self):
    lines = ['#if BUILDFLAG(IS_IOS)',
             '#error IS_IOS not allowed',
             '#endif']
    errors = PRESUBMIT._CheckNoIsIOSBuildFlagsInChromeFile(
        MockInputApi(), MockFile('chrome/path/foo_platform.cc', lines))
    self.assertEqual(1, len(errors))
    self.assertEqual('    chrome/path/foo_platform.cc:1', errors[0])

if __name__ == '__main__':
  unittest.main()