summaryrefslogblamecommitdiff
path: root/scalatexApi/src/test/scala/scalatex/ErrorTests.scala
blob: a7e6155fe540b60b3e206a0a02caff6814c2817a (plain) (tree)










































                                                                         
                    

































































































































































                                                                   

               
  
                    




                                                                                              
               









                                                            
                                       

               






























































































































                                                                                          
                             





                                  
               
                                              
             

                           

             


       
//package scalatex
//
//import utest._
//import scalatex.stages._
//import scalatags.Text.all._
//import scalatex.Internals.{DebugFailure, twRuntimeErrors}
//
///**
//* Created by haoyi on 7/14/14.
//*/
//object ErrorTests extends TestSuite{
//  def check(x: => Unit, expectedMsg: String, expectedError: String) = {
//    val DebugFailure(msg, pos) = intercept[DebugFailure](x)
//    def format(str: String) = {
//      val whitespace = " \t\n".toSet
//      "\n" + str.dropWhile(_ == '\n')
//                .reverse
//                .dropWhile(whitespace.contains)
//                .reverse
//    }
//    // Format these guys nicely to normalize them and make them
//    // display nicely in the assert error message if it blows up
//    val formattedPos = format(pos)
//    val formattedExpectedPos = format(expectedError)
//
//    assert(msg.contains(expectedMsg))
//    assert(formattedPos == formattedExpectedPos)
//
//  }
//  val tests = TestSuite{
//
//
//    'simple - check(
//      twRuntimeErrors("omg @notInScope lol"),
//      """not found: value notInScope""",
//      """
//      twRuntimeErrors("omg @notInScope lol"),
//                           ^
//      """
//    )
//
//    'chained{
//      'properties {
//        * - check(
//          twRuntimeErrors("omg @math.lol lol"),
//          """object lol is not a member of package math""",
//          """
//          twRuntimeErrors("omg @math.lol lol"),
//                                    ^
//          """
//        )
//
//        * - check(
//          twRuntimeErrors("omg @math.E.lol lol"),
//          """value lol is not a member of Double""",
//          """
//          twRuntimeErrors("omg @math.E.lol lol"),
//                                      ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("omg @_root_.scala.math.lol lol"),
//          """object lol is not a member of package math""",
//          """
//          twRuntimeErrors("omg @_root_.scala.math.lol lol"),
//                                                 ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("omg @_root_.scala.gg.lol lol"),
//          """object gg is not a member of package scala""",
//          """
//          twRuntimeErrors("omg @_root_.scala.gg.lol lol"),
//                                            ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("omg @_root_.ggnore.math.lol lol"),
//          """object ggnore is not a member of package <root>""",
//          """
//          twRuntimeErrors("omg @_root_.ggnore.math.lol lol"),
//                                      ^
//          """
//        )
//      }
//      'calls{
//        * - check(
//          twRuntimeErrors("@scala.QQ.abs(-10).tdo(10).sum.z"),
//          """object QQ is not a member of package scala""",
//          """
//          twRuntimeErrors("@scala.QQ.abs(-10).tdo(10).sum.z"),
//                                 ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.abs(-10).tdo(10).sum.z"),
//          "value tdo is not a member of Int",
//          """
//          twRuntimeErrors("@scala.math.abs(-10).tdo(10).sum.z"),
//                                               ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.abs(-10).to(10).sum.z"),
//          "value z is not a member of Int",
//          """
//          twRuntimeErrors("@scala.math.abs(-10).to(10).sum.z"),
//                                                          ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.abs(-10).to(10).sum.z()"),
//          "value z is not a member of Int",
//          """
//          twRuntimeErrors("@scala.math.abs(-10).to(10).sum.z()"),
//                                                          ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.abs(-10).cow.sum.z"),
//          "value cow is not a member of Int",
//          """
//          twRuntimeErrors("@scala.math.abs(-10).cow.sum.z"),
//                                               ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.smath.abs.cow.sum.z"),
//          "object smath is not a member of package scala",
//          """
//          twRuntimeErrors("@scala.smath.abs.cow.sum.z"),
//                                 ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.cos('omg)"),
//          "type mismatch",
//          """
//          twRuntimeErrors("@scala.math.cos('omg)"),
//                                           ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@scala.math.cos[omg]('omg)"),
//          "not found: type omg",
//          """
//          twRuntimeErrors("@scala.math.cos[omg]('omg)"),
//                                           ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("""
//            I am cow hear me moo
//            @scala.math.abs(-10).tdo(10).sum.z
//            I weigh twice as much as you
//          """),
//          "value tdo is not a member of Int",
//          """
//            @scala.math.abs(-10).tdo(10).sum.z
//                                ^
//          """
//        )
//      }
//      'curlies{
//        * - check(
//          twRuntimeErrors("@p{@Seq(1, 2, 3).foldLeft(0)}"),
//          "missing arguments for method foldLeft",
//          """
//          twRuntimeErrors("@p{@Seq(1, 2, 3).foldLeft(0)}"),
//                                                   ^
//          """
//        )
//
//        * - check(
//          twRuntimeErrors("@Nil.foldLeft{XY}"),
//          "missing arguments for method foldLeft",
//          """
//          twRuntimeErrors("@Nil.foldLeft{XY}"),
//                                        ^
//          """
//        )
//
////        * - check(
////          twRuntimeErrors("@Seq(1).map{(y: String) => omg}"),
////            "type mismatch",
////            """
////          twRuntimeErrors("@Seq(1).map{(y: String) => omg}"),
////                                                ^
////          """
////        )
////        * - check(
////          twRuntimeErrors("@Nil.map{ omg}"),
////          "too many arguments for method map",
////          """
////          twRuntimeErrors("@Nil.map{ omg}"),
////                                    ^
////          """
////        )
//      }
//      'callContents{
//        * - check(
//          twRuntimeErrors("@scala.math.abs((1, 2).wtf)"),
//          "value wtf is not a member of (Int, Int)",
//          """
//          twRuntimeErrors("@scala.math.abs((1, 2).wtf)"),
//                                                  ^
//          """
//        )
//
//        * - check(
//          twRuntimeErrors("@scala.math.abs((1, 2).swap._1.toString().map(_.toString.wtf))"),
//          "value wtf is not a member of String",
//          """
//          twRuntimeErrors("@scala.math.abs((1, 2).swap._1.toString().map(_.toString.wtf))"),
//                                                                                    ^
//          """
//        )
//      }
//    }
//    'ifElse{
//      'oneLine {
//        * - check(
//          twRuntimeErrors("@if(math > 10){ 1 }else{ 2 }"),
//          "object > is not a member of package math",
//          """
//          twRuntimeErrors("@if(math > 10){ 1 }else{ 2 }"),
//                                    ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@if(true){ (@math.pow(10)) * 10  }else{ 2 }"),
//          "Unspecified value parameter y",
//          """
//          twRuntimeErrors("@if(true){ (@math.pow(10)) * 10  }else{ 2 }"),
//                                               ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("@if(true){ * 10  }else{ @math.sin(3, 4, 5) }"),
//          "too many arguments for method sin: (x: Double)Double",
//          """
//          twRuntimeErrors("@if(true){ * 10  }else{ @math.sin(3, 4, 5) }"),
//                                                           ^
//          """
//        )
//      }
//      'multiLine{
//        * - check(
//          twRuntimeErrors("""
//            Ho Ho Ho
//
//            @if(math != 10)
//              I am a cow
//            @else
//              You are a cow
//            GG
//          """),
//          "object != is not a member of package math",
//          """
//            @if(math != 10)
//                     ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("""
//            Ho Ho Ho
//
//            @if(4 != 10)
//              I am a cow @math.lols
//            @else
//              You are a cow
//            GG
//          """),
//          "object lols is not a member of package math",
//          """
//              I am a cow @math.lols
//                              ^
//          """
//        )
//        * - check(
//          twRuntimeErrors("""
//            Ho Ho Ho
//
//            @if(12 != 10)
//              I am a cow
//            @else
//              @math.E.toString.gog(1)
//            GG
//          """),
//          "value gog is not a member of String",
//          """
//              @math.E.toString.gog(1)
//                              ^
//          """
//        )
//      }
//    }
//    'forLoop{
//      'oneLine{
//        'header - check(
//          twRuntimeErrors("omg @for(x <- (0 + 1 + 2) omglolol (10 + 11 + 2)){ hello }"),
//          """value omglolol is not a member of Int""",
//          """
//          twRuntimeErrors("omg @for(x <- (0 + 1 + 2) omglolol (10 + 11 + 2)){ hello }"),
//                                                     ^
//          """
//        )
//
//        'body - check(
//          twRuntimeErrors("omg @for(x <- 0 until 10){ @((x, 2) + (1, 2)) }"),
//          """too many arguments for method +""",
//          """
//          twRuntimeErrors("omg @for(x <- 0 until 10){ @((x, 2) + (1, 2)) }"),
//                                                              ^
//          """
//        )
//      }
//      'multiLine{
//        'body - check(
//          twRuntimeErrors("""
//            omg
//            @for(x <- 0 until 10)
//              I am cow hear me moo
//              I weigh twice as much as @x.kkk
//          """),
//          """value kkk is not a member of Int""",
//          """
//              I weigh twice as much as @x.kkk
//                                         ^
//          """
//        )
//      }
//    }
//    'multiLine{
//      'missingVar - check(
//        twRuntimeErrors("""
//        omg @notInScope lol
//        """),
//        """not found: value notInScope""",
//        """
//        omg @notInScope lol
//            ^
//        """
//      )
////      'wrongType - check(
////        twRuntimeErrors("""
////        omg @{() => ()} lol
////        """),
////        """type mismatch""",
////        """
////        omg @{() => ()} lol
////                 ^
////        """
////      )
//
//      'bigExpression - check(
//        twRuntimeErrors("""
//          @{
//            val x = 1 + 2
//            val y = new Object()
//            val z = y * x
//            x
//          }
//        """),
//        "value * is not a member of Object",
//        """
//            val z = y * x
//                     ^
//        """
//      )
//    }
//  }
//}